2

我有一个这样的代码块:

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

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

我遇到的问题是,当我doSomething()anotherElemId单击事件(绑定在准备好的文档上)调用它时,它按预期工作,但从elementId单击递归调用它不起作用。

有任何想法吗?思考是我所缺少的微不足道的东西。

4

1 回答 1

0

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

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

var activated = false;

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

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

    });
});
于 2012-08-27T00:19:37.783 回答