jQuery的toggleClass如果另一个元素是可见的
问题描述:
我有一个项目使用jQuery 1.11.2.1jQuery的toggleClass如果另一个元素是可见的
哪里这个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默认状态为显示:无
问题存在于所有的浏览器,我可以检查。
答
第一个例子几乎是正确的,不同之处在于你将一个布尔值(从.is()
)放入一个jQuery对象中。该布尔值需要直接作为toggleClass
方法的参数。试试这个:
$(".clickme").click(function(){
$("#menu").toggleClass("fixed", $("#panel").is(":visible"));
$("#panel").slideToggle();
});
罗里嗨,你的建议是工作的罚款。我可以问问你为什么升级前工作吗? (这是一个WordPress的网站)。看这里,以前的版本:http://greenparkmadama.it/该脚本是http://greenparkmadama.it/wp-content/themes/greenparkmadama/js/greenparkmadama.js?ver=0.7第21行 – bluantinoo
老实说,我不知道。它真的不应该是。这可能是一个固定的错误。我没有检查版本说明以查看版本之间的变化。 –
这很奇怪!此外,情况是错误的:我需要检查它是否隐藏,而不是如果它是可见的!我在2年前制作了这个剧本,并且一直工作到现在。如痴如醉! ;)无论如何非常感谢 – bluantinoo