我有一个像这样的代码块:
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/