javascript - 第一次触发后函数变得未定义

标签 javascript jquery recursion scope

我有一个像这样的代码块:

function doSomething() {
    someVar.on("event_name", function() {
        $('#elementId').click(function(e) {
            doSomething();
        });
    });
}

// and on document ready
 $(function () {
    $('#anotherElemId').click(function () {
        doSomething();
    });
});

我遇到的问题是,当我从 anotherElemId 点击事件(绑定(bind)在文档就绪)调用 doSomething() 时,它会按预期工作,但是从 elementId click 递归调用它不起作用。

有什么想法吗?思考是我所缺少的一件微不足道的事情。

最佳答案

someVar 是对 dom 元素的实际 jQuery 引用吗? (例如 $('#someitem'))

第二个问题是您不能将 .click 事件放入您稍后想要实例化的函数中。如果您尝试仅允许 #elementId 在某个先前事件之后发生点击事件,请尝试测试测试器变量是否为 true:

var activated = false;

$(function () {
    $('#anotherElemId').click(function () {
        activated = true;
    });

    $('#secondElemId').on("event_name", function() {
        if (activated) {
            // code that happens only after #anotherElemId was clicked.
        }

    });
});

关于javascript - 第一次触发后函数变得未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12134801/

相关文章:

javascript - 填充导致错误的按钮被触发?

javascript - 可靠的下拉菜单

loops - 如何在满足特定条件时打破 erlang 中的循环流控制?

算法设计。最佳,最有效的解决方案

java - 被告知我的代码不是递归...寻找指导为什么不!

javascript - xpages:计算字段中的 HTML 表

javascript - angularjs 嵌入和 ng-repeat : doing it right

javascript - 主干 View UI

javascript - pdfmake 从长 HTML 表生成 PDF

javascript - 检测到多个事件,其中应该只有一个