Javascript 如果另一个元素可见,jQuery将切换类

Javascript 如果另一个元素可见,jQuery将切换类,javascript,jquery,Javascript,Jquery,我有一个关于jQuery1.11.2.1的项目 此jquery语句在没有问题的情况下工作: $( document ).ready(function() { $(".clickme").click(function(){ $("#menu").toggleClass("fixed", $( $("#panel").is(":visible") ) ); $("#panel").slideToggle(); }); }); 在我转到jQuery 1.

我有一个关于jQuery1.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元素的可见性

元素#面板默认状态为显示:无


这个问题在我可以检查的所有浏览器中都存在。

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

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

你好,罗瑞,你的建议很有效。我可以问一下升级前它为什么工作吗?(这是一个wordpress网站)。看这里,前一个版本:脚本来自第21行老实说,我不知道。这真的不应该。这可能是一个固定的错误。我还没有查看发行说明,看看版本之间发生了什么变化。真奇怪!此外,条件是错误的:我需要检查它是否隐藏,而不是它是否可见!我大约2年前写了这个剧本,一直到现在都很有效。迷人的!;)无论如何,非常感谢