JQUERY';在';声明不起作用
我有一个简单的按钮,当点击时,会改变它的类。我还有第二个脚本,它试图检测再次单击的类 它们需要能够被点击打开和关闭 ////存档按钮点击作品 ////单击“取消存档”按钮无效 Jquery 1.9JQUERY';在';声明不起作用,jquery,jquery-on,Jquery,Jquery On,我有一个简单的按钮,当点击时,会改变它的类。我还有第二个脚本,它试图检测再次单击的类 它们需要能够被点击打开和关闭 ////存档按钮点击作品 ////单击“取消存档”按钮无效 Jquery 1.9 当您在上调用.on时,click事件被绑定,但当您调用它时,不存在类为unarchive\u butt的元素,因此它永远不会被绑定 您真正想要的是旧的jQuery.live()功能,它已经过时,取而代之的是下面的代码: $('body').on('click', 'a.archive_butt', f
当您在上调用
.on时,click事件被绑定,但当您调用它时,不存在类为unarchive\u butt
的元素,因此它永远不会被绑定
您真正想要的是旧的jQuery.live()
功能,它已经过时,取而代之的是下面的代码:
$('body').on('click', 'a.archive_butt', function() {
//do stuff
});
$('body').on('click', 'a.unarchive_butt', function() {
//do stuff
});
就我个人而言,我会:
//// Archive button clicked
$('a.button').on("click", function() {
if ($(this).hasClass("archive_butt")){
$(this).text('Un-Archive');
//and all other stuff you are doing
}
else{
$(this).text('Archive');
//and all the other stuff you are doing...
}
$(this).toggleClass("unarchive_butt").toggleClass("archive_butt");
});
改变
$('a.unarchive_butt').on("click", function() {
到
.live()
方法从1.7开始就不推荐使用,不应再使用
从jQuery 1.7开始,.on()方法提供了附加事件处理程序所需的所有功能。
…
.on(事件[,选择器][,数据],处理程序(事件对象))
…
如果选择器
被省略或为空,则事件处理程序称为直接或直接绑定。
…
如果提供了选择器
,则事件处理程序称为委托
…
委托事件的优点是,它们可以处理来自后代元素的事件,这些子元素在以后添加到文档中
因此,请尝试更换:
$('a.unarchive_butt').on("click", function() {
...
});
与
它将直接绑定的事件转换为委托事件,能够处理类更改和以后添加到dom中的对象。能否显示相关HTML?事件仅绑定到绑定时与选择器匹配的元素,而不会在将来更改类时绑定到该元素。为此,您需要委托事件处理程序,Charlino似乎已经涵盖了这一点。
$('a.unarchive_butt').live("click", function() {
$('a.unarchive_butt').on("click", function() {
...
});
$().on("click", "a.unarchive_butt", function() {
...
});