javascript - 以多次调用结束(由于循环引用) - JQuery

标签 javascript jquery

我的目标相当简单。在我的网络应用程序中,我有两个页面,我想从另一个页面调用每个页面。

但是我在 Javascript 中实现函数调用的方式似乎有缺陷。我已经阅读了 closurebubblingrecursionevent.stopPropagation(),但仍然不确定是什么实现这一点的正确方法。

这是我可以重现问题的最小代码。

    function init(){
    var $div1 = 'Click to Load page 2';
    $("#main").append($div1);

    var $div2 = 'Click to go back to  page 1';
    $("#main").append($div2);    
    displayFirstPage();
}


    function displayFirstPage() {
    var $div1 = $("#div1");
    var $div2 = $("#div2");    

    $div2.hide();
    $div1.show();

    alert("first called");

    $div1.click(function(){
    displaySecondPage();
    });
}


    function displaySecondPage() {
    var $div1 = $("#div1");
    var $div2 = $("#div2");    

    alert("second called");
    $div1.hide();
    $div2.show();

    $div2.click(function(){
    displayFirstPage();
    });
}

点击 div 几次后,我最终弹出了大量警报。我只想让每个调用执行一次。显然,我缺少终止函数调用的方法。

感谢任何帮助。

最佳答案

你的

$div1.click(function(){
    displaySecondPage();
});

$div2.click(function(){
    displayFirstPage();
});

应该位于您的init()函数内。每次调用它们时,您都会向 div 添加另一个单击处理程序。您只想添加它们一次,因此只需将它们放入 init() 中即可。

关于javascript - 以多次调用结束(由于循环引用) - JQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12081904/

相关文章:

javascript - 获取 Google Analytics View ID

javascript - 我如何检测js中的每个tr?

jquery - 为什么 `$(this).children` 在以下代码中不起作用?

php - Ajax url 编码问题

javascript - 正确解码 Get Blob 数据字符串到 ArrayBuffer

javascript - AJAX 成功函数调用成功但未正确更新页面

javascript - 寻找有关如何突出显示图像区域的建议

javascript - MVC AJAX调用url格式

javascript - 如何通过ajax提交多步骤表单

jquery - 解除绑定(bind)变更事件