对于自定义事件,jQuery触发器不会使用bind()或on()触发

任何人都可以告诉我为什么这段代码不起作用?

$('body').on('test', function() { alert('test'); }); $('body').trigger('test'); 

我正在使用jquery-1.7.2.min 。 我没有得到任何错误,只是没有任何反应。

我已经尝试将代码放在内联脚本中,在$(document).ready() ,但仍然没有。 我也尝试了on()bind() ,但都没有结果。 我看到所有示例都显示相同的语法,所以有什么不同呢?

似乎问题在于DOM已经准备好了。 将代码放在内联脚本中是行不通的。 将它放在$('document').ready()将使用匿名函数,但由于某种原因没有使用’()’调用函数..这段代码有效

 $(document).ready(start); function start(){ $('body').on('test', function() { alert('test'); }); $('body').trigger('test'); } 

但这没有… *注意函数调用括号。

 $(document).ready(start()); function start(){ $('body').on('test', function() { alert('test'); }); $('body').trigger('test'); } 

一个确切的例子在jsfiddle上有两种方式,但由于某种原因,只有一种方法可以在我的服务器上运行。 我想提出另一个问题为什么,但至少我们可以看到这个代码确实有效,我的东西有一些奇怪的exception:/

尝试授权:

 $(document).on('test', 'body', function() { alert('test'); }); $('body').trigger('test'); 

这就像live()一样。 http://api.jquery.com/live/