slideToggle()可以检测SlideUp或SlideDown吗?

时间:2013-10-29 11:39:51

标签: jquery slidetoggle

我知道hover()handInhandOut的默认设置,但无论如何我可以在slideUp内检测到SlideDownSlideToggle

有这样的代码:

$("#divName").slideToggle(function(){//when slideUp, do something},
                          function(){//when slideDown, do something});

我尝试了这段代码,但没有运气,你们认为这有时会让事情变得更容易吗?

3 个答案:

答案 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;启动并使用此代码。