jquery点击事件未触发

Udd*_*ers 1 javascript jquery dom-manipulation

我在一个元素上有一个click事件,它将它的类从"fave"更改为"faved",然后我尝试触发一个新的clicked事件,如果在它的类被faved时单击该元素,但它没有触发,这里是我的javascript.

$("#jobwall .fave").click(function(){
    var self =  $(this);
    $.ajax({
        url: "/favourites/save_employer", 
        type: "POST",
        data: "employer_id="+self.attr('href'),
        success:function() {
            self.removeClass('fave');
            self.addClass('faved');
        }
    });
    return false;
});

$(".faved").live("click", function(){
    alert("!!");
    return false;
});
Run Code Online (Sandbox Code Playgroud)

Rya*_*sas 5

您可以将.cl​​ick()事件包含在新对象中,而不是使用.live().像这样:

$("#jobwall .fave").click(function(){
    var self =  $(this);
    $.ajax({
        url: "/favourites/save_employer", 
        type: "POST",
        data: "employer_id="+self.attr('href'),
        success:function() {
            self.removeClass('fave');
            self.addClass('faved');
            self.click(function(){alert("!!"); return false;});
        }
    });
    return false;
});
Run Code Online (Sandbox Code Playgroud)

.live()方法用于添加元素,而不是更改.记住这一点.

有关.live()的更多信息,请访问此处.

祝你好运:D


更新

从jQuery 1.7开始,该.live()方法已被弃用.使用.on()附加的事件处理程序.