我在jQuery的ready
方法中将一个自定义事件处理程序附加到body
上。
之后我立即使用trigger
触发了自定义事件,但似乎没有任何反应。
$(function(){
$("body").on("test", function(){ alert("test triggered"); }
$("body").trigger("test");
}
我在jQuery的ready
方法中将一个自定义事件处理程序附加到body
上。
之后我立即使用trigger
触发了自定义事件,但似乎没有任何反应。
$(function(){
$("body").on("test", function(){ alert("test triggered"); }
$("body").trigger("test");
}
$(function(){
$("body").on("test", function(){
alert("test triggered");
}); < ---- Missing this
$("body").trigger("test");
});
其次,你不能从控制台触发事件,因为$(function() {});
形成闭包,你将无法访问其中的任何方法。
若要使它像您期望的那样工作,请在脚本文件中设置一个调试点,然后尝试触发事件。现在它可以正常工作了,因为事件已在作用域内。
$("body").trigger("test");
将会起作用。为什么不行呢? $
是全局变量。 - Šime Vidas看起来你的代码格式不正确。请检查你的调试控制台以确认。
你可以尝试这样做:
$(function(){
$("body").on("test", function(){
alert("test triggered");
});
$("body").trigger("test");
}