JQUERY';在';声明不起作用

JQUERY';在';声明不起作用,jquery,jquery-on,Jquery,Jquery On,我有一个简单的按钮,当点击时,会改变它的类。我还有第二个脚本,它试图检测再次单击的类 它们需要能够被点击打开和关闭 ////存档按钮点击作品 ////单击“取消存档”按钮无效 Jquery 1.9 当您在上调用.on时,click事件被绑定,但当您调用它时,不存在类为unarchive\u butt的元素,因此它永远不会被绑定 您真正想要的是旧的jQuery.live()功能,它已经过时,取而代之的是下面的代码: $('body').on('click', 'a.archive_butt', f

我有一个简单的按钮,当点击时,会改变它的类。我还有第二个脚本,它试图检测再次单击的类

它们需要能够被点击打开和关闭

////存档按钮点击作品 ////单击“取消存档”按钮无效

Jquery 1.9
当您在上调用
.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() {
    ...
});