如何临时禁用HTML元素上的单击事件

时间:2010-10-24 23:39:10

标签: jquery

 $(function(){
   $(".first").click(function(){ 
               $(".first ul li").slideUp();
               $(this).find("li").slideDown();        
   });
});

如果活动的.first元素暂时不可点击,直到它的类兄弟被称为活动,当然执行上面的代码是必要的。

无论是什么类型:divli

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

更新

星期一邋code的代码的坏情况。感谢Peter Ajtai了解(见评论)。

 $(function(){
   $(".first").click(function(event){


               if ($(this).siblings('.active').length !== $(this).siblings().length) {
                   return false;
               }

               $(".first ul li").slideUp();
               $(this).find("li").slideDown();        
   });
});

因此,如果所有兄弟姐妹都没有active课程,那么你的职能将提前纾困。

答案 1 :(得分:2)

通过激活,您的意思是他们有一个名为active的课程吗?

如果是这样,试试这个:

$(function(){
    $(".first").click(function() {
        if( $( this ).siblings( ':not(.active)' ).length === 0 ) {
             $(".first ul li").slideUp();
             $(this).find("li").slideDown(); 
        }       
    });
});

点击具有.first类的元素后,它只会its .siblings() do :not() have活动类,并使用the length property检查找到的数量。

length0时,它们都有active类。

答案 2 :(得分:1)

您可以再次使用.unbind()然后再使用.bind()事件。但我认为班级翻转更有效率。