Javascript 在jQuery中简洁地添加自定义事件触发器
我有一个相当大且复杂的javascript模块,用于我网站的多个页面。在进行了一些搜索和修改之后,我提出了以下结构,以便在模块的某个函数在特定页面上运行时运行一些额外的代码Javascript 在jQuery中简洁地添加自定义事件触发器,javascript,javascript-events,event-handling,jquery,Javascript,Javascript Events,Event Handling,Jquery,我有一个相当大且复杂的javascript模块,用于我网站的多个页面。在进行了一些搜索和修改之后,我提出了以下结构,以便在模块的某个函数在特定页面上运行时运行一些额外的代码 // within module definition that is used across multiple pages function some_module_method(){ $.event.trigger( 'custom_event' ); } // bit of functionality that
// within module definition that is used across multiple pages
function some_module_method(){
$.event.trigger( 'custom_event' );
}
// bit of functionality that I'm trying to add to a single page
$( '#some-element' ).on( 'custom_event', function(){
console.log( 'The custom event has just been triggered!' );
} );
我遇到的一个问题是,当我期望这个事件只触发一次时,它会很快连续触发2-4次。这是我用来触发和附加此事件的上述结构的问题,还是其他问题
另外,如何在不引用某个DOM对象的情况下将函数附加到事件?简单地使用$.on()是行不通的
这是我关于堆栈溢出的第一篇文章。你们真是一个了不起的资源,我想开始回馈这个社区。对于你们的第一期,不看一个例子就有点难说了。我可能弄错了,但我很确定$.trigger()不会像您使用它那样工作。它必须附加到jQuery对象,例如..
$().trigger()
至于你的第二个问题。。。您不必精确地使用DOM元素,但可以使用空的jquery对象,如$({}).on()
。看
希望这对你有所帮助
另一方面,您可能会混淆jQuery对象方法和核心方法。是一个小信息以防万一。使用
$('#some-element').trigger('custom_event');
而不是
$.trigger('custom_event');
抱歉,我运行的代码是$.event.trigger('custom_event')。我已相应地更正了我的问题。谢谢啊好的。在这种情况下,我认为您可能错误地使用了$.Event。看看这些例子。