Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery中简洁地添加自定义事件触发器_Javascript_Javascript Events_Event Handling_Jquery - Fatal编程技术网

Javascript 在jQuery中简洁地添加自定义事件触发器

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

我有一个相当大且复杂的javascript模块,用于我网站的多个页面。在进行了一些搜索和修改之后,我提出了以下结构,以便在模块的某个函数在特定页面上运行时运行一些额外的代码

// 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。看看这些例子。