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 的元素上。由于此对象尚未实例化,因此没有要绑定的对象,因此无法正常工作。