1

クラスを「お気に入り」から「お気に入り」に変更する要素にクリックイベントがあります。クラスがお気に入りのときに要素がクリックされた場合、新しいクリックイベントを発生させようとしていますが、発生していません。私の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;
});
4

2 に答える 2

5

.click() イベントを新しいオブジェクトに含めて、.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;
});

.live() メソッドは要素を追加するためのものであり、変更するためのものではありません。これを覚えて。

.live() の詳細については、こちらをご覧ください

頑張ってください:D


アップデート

jQuery 1.7 以降、この.live()メソッドは非推奨になりました。.on()イベント ハンドラーをアタッチするために使用します。

于 2011-06-22T15:29:15.883 に答える
1

私がやったことをいじってみると、それらのreturn false;ステートメントがあなたの邪魔をしているように見えます。event.preventDefault();... をそのまま使用することを検討する必要があります。

$("#jobwall .fave").click(function(event){
    event.preventDefault();

私が何を意味するかについての例については、このjsFiddleをチェックしてください

于 2011-06-22T15:37:57.000 に答える