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



我有一个相当大且令人费解的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元素,但是您可以使用像$({}).on()这样的空jQuery对象。看到这个小提琴。

希望这对一些有帮助。

在旁注上,您可能会将jQuery对象方法与核心方法混淆。以防万一。

使用

$('#some-element').trigger('custom_event');

而不是

$.trigger('custom_event');

相关内容

  • 没有找到相关文章

最新更新