我知道 hover()
有默认设置 handIn
和 handOut
,但无论如何我能检测到 slideUp
和 SlideDown
内 SlideToggle
?
有这样的代码:
$("#divName").slideToggle(function(){//when slideUp, do something},
function(){//when slideDown, do something});
我尝试了这段代码,但没有运气,你们认为这有时会让事情变得更容易吗?
slideToggle
默认情况下不允许这样做,但编写自己的版本会很容易。像这样的东西可以作为替代处理程序:
$('#divTrigger').click(function () { // Or bind to any other event you like, or call manually
var $t = $('#divToSlide');
if ($t.is(':visible')) {
$t.slideUp();
// Other stuff to do on slideUp
} else {
$t.slideDown();
// Other stuff to down on slideDown
}
});
同样,如果你想在slideUp或slideDown之后发生动作,你可以将它们放入回调中,就像这样 $.slideUp(300, function() {// Callback here});
。
如果您检查幻灯片的状态并且比功能更好怎么办?
$("#divName").slideToggle(function(){
var check=$(this).is(":hidden");
if(check == true)
{
//do something
}
});
你总是可以保留一个标志,因为纯jQuery中没有方法。假设 #divName
不可见,
var toggle_flag = 0;
$('#divName').click(function () {
$('#myelement').slideToggle();
if(toggle_flag==0){
//code for slide down
toggle_flag=1;
}else{
//code for slide up
toggle_flag=0;
}
});
如果 #divName
已经可以看到你可以发起 var toggle_flag=1;
并使用此代码。