【发布时间】:2017-03-15 11:48:59
【问题描述】:
我有两个脚本。
第一个脚本包含一个游戏的原型类。这个类是使用严格的,并且没有被准备好的文档包围。触发器:
$("#trigger").trigger("noPossibilities");
在同样有 use strict 的第二个脚本中,我尝试捕获触发器:
$(document).ready(function() {
$("#trigger").on("noPossibilities", function() {
console.log("noPossibilities trigger");
});
});
问题是我无法抓住触发器。这可能与使用严格/范围有关,但我似乎找不到解决方法。
真的希望有人可以帮助我
更新 第一个脚本有一个原型类。
这个类在第二个脚本中被实例化。处理程序之后。然后还是不行,因为第一个脚本是在第二个脚本之前加载的?
当我从控制台执行这一行时:
$("#trigger").trigger("noPossibilities");
它不会被触发。不应该这样工作吗?
更新 2
我发现了问题。第一个脚本在实例化时将带有 id 触发器的元素添加到文档中。我在游戏开始时有一个弹出窗口。现在,单击该按钮即可附加处理程序。
文档可能没有处理程序应该附加到的元素。现在它稍后会被附加,现在它正在工作。
【问题讨论】:
-
我认为您在附加处理程序之前触发了事件
-
不,我 100% 确定在触发事件之前附加了处理程序。还是因为第一个脚本在第二个脚本之前加载?
-
文档就绪处理程序中的代码仅在所有元素都准备好后执行....所以我很确定您在此之前触发:)
标签: javascript jquery scope eventtrigger strict