Javascript jQuery切换运行两次
似乎这个代码:Javascript jQuery切换运行两次,javascript,jquery,Javascript,Jquery,似乎这个代码: $(function(){ $('.show_hide_login').toggle( function (){ alert('show'); $("div#fullpage").show(); $("div#loginbox").show(); }, function (){ alert('hide'); $("div#lo
$(function(){
$('.show_hide_login').toggle(
function (){
alert('show');
$("div#fullpage").show();
$("div#loginbox").show();
},
function (){
alert('hide');
$("div#loginbox").hide();
$("div#fullpage").hide();
}
); });
你知道为什么当我点击任何一个链接(两个,一个是div,一个是锚点)时它会运行两次吗?这个
.show\u hide\u login
类有多少元素?我猜你有两个。在这种情况下,$('.show\u hide\u login')
结果包含两个元素,并对每个元素执行toggle()
。这不是对您的问题的回答,但您可以像这样清理代码:
$(function() {
$('.show_hide_login').toggle(
function() {
alert('show');
$("#loginbox,#fullpage").show();
}, function() {
alert('hide');
$("#loginbox,#fullpage").hide();
});
});
至于你的实际问题,我怀疑尼克猜到了凶手。查看此演示以查看绑定同一事件两次的结果:
除了在绑定切换事件之前添加警报外,还可以添加一个unbind()
,看看这是否解决了问题,如:
$('.show_hide_login').unbind().toggle(
如果这解决了问题,切换绑定肯定会运行两次,因此您只需找出原因。我的答案只是一种检查点,我有相同的问题,但原因不同。我确实在基页和子页中包含了脚本文件。如果出现此问题,将导致切换运行两次。请检查脚本是否仅添加一次 这可能与我遇到的问题相同 因此,如果您得到了一个包含脚本标记的元素-然后在jquery中移动包含该元素的元素或用另一个标记将其包装-然后再次执行jquery中的ready函数-从而将第二个toggle函数绑定到您的元素
正如建议的那样,$('.show\u hide\u login').unbind().toggle(这是一种可行的解决方法,但最好尝试将javascript代码移动到页面的顶部或底部。我有一个标准链接:以及一个设置为display:none的完整页面div覆盖。
.toggle()带有函数参数的
只是一个单击事件。除非嵌套了.show\u hide\u login
元素,否则它只会对单击的元素执行。:o)谢谢,我已将它们移出到单独的中。单击事件效果很好。。我想这会教我如何走捷径:(@Nathan-我觉得你使用的.toggle()
是正确的。下面是一个例子:你上面的脚本是否可能运行了两次?在调用.toggle()
之前发出一个警报,看看是否是这样。