我知道hover()
有handIn
和handOut
的默认设置,但无论如何我可以在slideUp
内检测到SlideDown
和SlideToggle
?
有这样的代码:
$("#divName").slideToggle(function(){//when slideUp, do something},
function(){//when slideDown, do something});
我尝试了这段代码,但没有运气,你们认为这有时会让事情变得更容易吗?
答案 0 :(得分:10)
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});
。
答案 1 :(得分:4)
如果您检查幻灯片的状态并且比功能更好怎么办?
$("#divName").slideToggle(function(){
var check=$(this).is(":hidden");
if(check == true)
{
//do something
}
});
答案 2 :(得分:0)
你总是可以保留一个标志,因为纯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;
启动并使用此代码。