js从不同脚本的原型触发事件
js triggering event from prototype from different script
我有一个包含游戏原型的脚本。由于我们要多次重用这个原型,所以我将其放在一个单独的脚本中。
还有第二个脚本实例化主脚本的原型。在此脚本中,我想从原型中捕获事件触发器。
原型
$("#trigger").trigger("noPossibilities");
第二个脚本:
$("#trigger").on("noPossibilities", function() {
console.log("no possibilities triggered");
});
我可能错过了一些东西,因为第二个脚本没有捕捉到事件。第二个脚本包含在 jQuery 文档就绪函数中,而原型脚本则没有。因为当我也包装第一个脚本(包含原型)时,第二个脚本不知道原型。
我上网查了下,我觉得跟文档准备好有关。
我试图从 js 中的原型发送事件,不幸的是它不起作用,因为我可能在那里做错了。
这是应该触发事件的脚本部分:
game.triggerEvent("id", "trigger", "noPossibilities");
game.prototype.triggerEvent = function(idOrClass, elementName, eventName){
if (idOrClass == "id")
{
var element = document.getElementById(elementName);
}
else
{
var element = document.getElementsByClassName(elementName);
}
// Create the event
var event = new CustomEvent(eventName, { "detail": "js event" });
// Dispatch/Trigger/Fire the event
element.dispatchEvent(event);
}
我试过用之前说的方法抓到:
$("#trigger").on("noPossibilities", function() {
console.log("no possibilities triggered");
});
真心希望有人能帮帮我。
我找到了解决方案。问题出在我的代码在第二个脚本中的顺序。
我在原型中实例化了很多游戏元素。还有 id 为 "trigger".
的元素
在实例化原型(和游戏元素)之前,我尝试将事件 "noPossibilities" 绑定到具有 id trigger 的元素上。由于此对象尚未实例化,因此没有要绑定的对象,因此无法正常工作。
我有一个包含游戏原型的脚本。由于我们要多次重用这个原型,所以我将其放在一个单独的脚本中。
还有第二个脚本实例化主脚本的原型。在此脚本中,我想从原型中捕获事件触发器。
原型
$("#trigger").trigger("noPossibilities");
第二个脚本:
$("#trigger").on("noPossibilities", function() {
console.log("no possibilities triggered");
});
我可能错过了一些东西,因为第二个脚本没有捕捉到事件。第二个脚本包含在 jQuery 文档就绪函数中,而原型脚本则没有。因为当我也包装第一个脚本(包含原型)时,第二个脚本不知道原型。
我上网查了下,我觉得跟文档准备好有关。
我试图从 js 中的原型发送事件,不幸的是它不起作用,因为我可能在那里做错了。
这是应该触发事件的脚本部分:
game.triggerEvent("id", "trigger", "noPossibilities");
game.prototype.triggerEvent = function(idOrClass, elementName, eventName){
if (idOrClass == "id")
{
var element = document.getElementById(elementName);
}
else
{
var element = document.getElementsByClassName(elementName);
}
// Create the event
var event = new CustomEvent(eventName, { "detail": "js event" });
// Dispatch/Trigger/Fire the event
element.dispatchEvent(event);
}
我试过用之前说的方法抓到:
$("#trigger").on("noPossibilities", function() {
console.log("no possibilities triggered");
});
真心希望有人能帮帮我。
我找到了解决方案。问题出在我的代码在第二个脚本中的顺序。
我在原型中实例化了很多游戏元素。还有 id 为 "trigger".
的元素在实例化原型(和游戏元素)之前,我尝试将事件 "noPossibilities" 绑定到具有 id trigger 的元素上。由于此对象尚未实例化,因此没有要绑定的对象,因此无法正常工作。