我遇到了jquery 1.9.1的问题。我已经搜索了但这些都没有解决我的问题。
$('.sm2_expander').live('click', function() {
$(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed');
return false;
});
每个人都说'使用''功能',但这次我的代码永远不会工作。
$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); });
编辑:这是我使用的主题页面:draggable link
答案 0 :(得分:14)
在您的示例中,您使用了选择器a.offsite
,但页面中没有与此选择器匹配的元素。这可能是它无法正常工作的原因。
$(function(){
$(document).on('click', '.sm2_expander', function(){
alert('bye');
$(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed');
})
})
我认为你可以将其缩短为
$(function(){
$(document).on('click', '.sm2_expander', function(){
$(this).closest('li').toggleClass('sm2_liOpen sm2_liClosed');
})
})
答案 1 :(得分:7)
.live()是在jQuery 1.3中引入的,因此它不能与早期版本一起使用。
.live()也在jQuery 1.7之后被弃用。
替代品是.on()和.delegate()
参见相关问题jQuery 1.9 .live()不是如何迁移现有代码的函数。
我使用" jquery-1.8.3.min.js"我的问题解决了。
答案 2 :(得分:6)
试试这个: - http://jsfiddle.net/trdb9/
JS: -
$(document).on("click", "a.offsite", function () {
alert("Goodbye!");
});
HTML: -
<a class="offsite">Click Me</a>
答案 3 :(得分:3)
您需要使用jquery-migrate-1.1.1.min.js
或更高版本。我想jquery
中会发生重大变化,其中一个变化就是让依赖.live
的每个人找到新的方法。
无论如何,尝试一下,它应该有用。
答案 4 :(得分:2)
尝试在代码中使用live
替换on
。
$('.sm2_expander').on('click', function() {
$(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed');
return false;
});
答案 5 :(得分:0)