如果另一个元素可见,则jQuery toggleClass

时间:2015-11-05 16:35:34

标签: javascript jquery

我有一个jQuery 1.11.2.1的项目

这个jquery语句没有问题:

$( document ).ready(function() {   
  $(".clickme").click(function(){
       $("#menu").toggleClass("fixed", $( $("#panel").is(":visible") ) );
       $("#panel").slideToggle();
    });
});

在我转到jQuery 1.11.3.2之后 每当我点击" .clickme"浏览器就会冻结按钮并要求我阻止一个挂得太久的脚本(jquery)。

我必须删除可见条件以避免浏览器挂起:

$( document ).ready(function() {  
    $(".clickme").click(function(){
        $("#menu").toggleClass("fixed");
        $("#panel").slideToggle();
    });
});

问题是我需要检查#panel元素的可见性。

元素#panel默认状态为display:none

我可以查看的所有浏览器都存在此问题。

1 个答案:

答案 0 :(得分:1)

第一个示例几乎是正确的,除了您将布尔值(从.is())放入jQuery对象。布尔值需要直接作为toggleClass方法的参数给出。试试这个:

$(".clickme").click(function(){
   $("#menu").toggleClass("fixed", $("#panel").is(":visible"));
   $("#panel").slideToggle();
});

More info on toggleClass()