有谁能告诉我为什么这段代码不起作用?
$('body').on('test', function() {
alert('test');
});
$('body').trigger('test');
我正在使用 jquery-1.7.2.min 。我没有任何错误,只是没有任何反应。
我已经尝试将代码放在内联脚本中,在$(document).ready()
内,但仍然没有。我也尝试了on()
和bind()
两种结果。我看到所有示例都显示相同的语法,所以有什么不同呢?
答案 0 :(得分:8)
似乎问题在于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上有两种方式,但由于某种原因,只有一种方法可以在我的服务器上运行。我想提出另一个问题,但至少我们可以看到这段代码确实有效,我的东西有一些奇怪的异常:/
答案 1 :(得分:1)
尝试授权:
$(document).on('test', 'body', function() {
alert('test');
});
$('body').trigger('test');
这就像live()一样。 http://api.jquery.com/live/