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()
之前发出一个警报,看看是否是这样。