Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery代码触发两次_Javascript_Jquery_Html_Jquery Plugins_Jquery Load - Fatal编程技术网

Javascript jQuery代码触发两次

Javascript jQuery代码触发两次,javascript,jquery,html,jquery-plugins,jquery-load,Javascript,Jquery,Html,Jquery Plugins,Jquery Load,我不知道原因和方式,但我的jQuery代码似乎在任何事件中都会触发两次 以下是我代码的一部分: commmon.js: $(document).ready(function() { $(".fpbtn-one").click(function() { console.log("Click recorded!"); // Gets logged twice on click $(this).parent().next().slideToggle();

我不知道原因和方式,但我的jQuery代码似乎在任何事件中都会触发两次

以下是我代码的一部分:

commmon.js

$(document).ready(function() {

    $(".fpbtn-one").click(function() {
        console.log("Click recorded!"); // Gets logged twice on click
        $(this).parent().next().slideToggle();
    });

    // The rest of the code...

});

$(window).load(function() {

    console.log("Setting up slides"); // Gets logged 2 on page load

    // These get initialized twice
    $("#div-1").responsiveSlides({
        auto: true,
        pager: true,
        pause:true,
        nav: false,
        timeout: 3000,
        speed: 500,
        maxwidth: 482,
        namespace: "transparent-btns"
    });

    $("#div-2").responsiveSlides({
        auto: true,
        pager: false,
        pause:true,
        nav: false,
        speed: 2000,
        maxwidth: 320,
    });

});

HTML:


window.NREUM | | | |(NREUM={}),(NREUM={}),(NREUM={})nRequire=函数a{var c=b[f][1][a];返回e(c?c:a},g,g.exports,a,b,c,c,d)}返回c[f]
window.NREUM | | |(NREUM={});NREUM.info={“beacon”:“beacon-4.newrelic.com”,“licenseKey”:“204ccc8db2”,“applicationID”:“1825150”,“transactionName”:“YVnVybacwxftwxFcWgzyKylTFWMVL0DG0Zerg==”,“queueTime”:0,“applicationTime”:187,“ttGuid”:“agentToken”:“userAttributes”:“errorBeacon”:“jserror.newrelic.com”,“代理”:“js代理”:“js.newrelic.com\/js-361.min”}

原因可能是什么?

可能是事件冒泡。使用
event.preventDefault()
,它将阻止默认事件发生,或者
event.stopPropagation()
将阻止事件冒泡

$(document).ready(function() {

    $(".fpbtn-one").click(function(event) {
        event.stopPropagation();
        console.log("Click recorded!"); // Gets logged twice on click
        $(this).parent().next().slideToggle();
    });

    // The rest of the code...

});

您的相关代码是必需的,但根据上面的代码片段,请尝试将所有代码放在document ready方法中。

最简单的解释是,您错误地包含了common.js两次


查看各个脚本,看看您是否在主文件的顶部引用了common.js。

是否您的代码正在处理代码加载到的元素

这个答案可能就是它发生的原因:


试着把这些东西放在div里面的身体里

示例。


我希望它能起作用。:

在调用jquery时,开始使用良好实践时要小心:

!function( $ ) {
   your code

}( jQuery )
就像你避免冲突一样

然后在html中添加js脚本时要小心,你可以添加两次,例如在html文件中调用一个js,但在回调中加载的js中,例如在另一个包含js的页面中,它将调用两次你的代码…我以前在递归调用中遇到过同样的问题,js从不停止调用它!! 在主页中,最好是在几个文件中调用js,否则您必须调试它


此外,您没有粘贴所有的代码我们帮不了您,我们只能告诉您我的意见…通常不是一个好建议…

可能是您已经将脚本文件
commmon.js
包含了两次。请检查您在代码中对它的引用。

使用“一”而不是“一”click@CodingAnt那没有任何意义。那只是一个建议,你能支持吗如果你想要一个解决方案,你应该发布你的html或fiddle。这一切都取决于你。我将所有JS包含移到了页面的顶部,它解决了这个问题。它起作用了,但我不知道为什么:(每个代码块都会发生同样的事情。这不可能是它。
$(window.load()呢)
?这不会冒泡。它已经在就绪处理程序中。如果不是,它可能根本不会启动,而不会启动twie。请看这个问题,您会注意到我没有两次包含该文件。@chuckfinley firebug报告脚本再次动态导入。
!function( $ ) {
   your code

}( jQuery )