我使用的是jQuery 1.8,在使用.on()函数时,在某些页面上出现了此错误。我使用的其他页面似乎也在做同样的事情——将触发器附加到动态创建的元素上,但不会产生这个错误:
Uncaught TypeError: Object #<Object> has no method 'on'
JS:
$(document).ready(function(){
$(document).on("click","button.pagebutton",function() {
$("div#pagesforreview").hide();
jsD=Date();
jsP=$(this).html();
$("div#externpage").load("prexternpage.php",{d:jsD,p:jsP},function() {
$("div#externpage").show();
$("div#pageactions").show();
jsNc=1;
$("div#pagecomments").load("praddcomment.php",{d:jsD,nc:jsNc},function() {
$("div#pagecomments").show();
});
});
});
});
所有动态生成的"页面按钮"按钮,不触发。然后错误就出现了。如果我使用不推荐使用的.live()方法,没有问题。但如果可能的话,我更喜欢使用正确的新1.8不推荐使用的方法?
我发现我的头文件是从我的生产服务器加载jquery库(1.6版),而不是从我的开发服务器加载(1.8版)……因此产生了问题。哦。谢谢你的评论。
$(document).ready(function(){
在第一行中写下:jQuery(document).ready(function($){
它对我有效。