class で div を使用していabc
ます。クラスを使用してそのdivを選択し、ajaxリクエストを行うjQuery関数があります。ajax関数が正常に返されたら、classのdivになるまでajaxメソッドが再度呼び出されないようにクラスを変更しましたabc
。しかし、div のクラスをxyz
同じ ajax 関数に更新した後でも、再度呼び出されます。
success: function(data){
//updating the class here
$(self).addClass('xyz').removeClass('abc');
}
クラスが更新されていることをソースで確認できますが、それでも同じ属性セレクターが以前のクラスを選択し、ajax メソッドを再度実行します。私がやろうとしていることを行う他の方法はありますか?助けてください!前もって感謝します。
編集:
$('.up_arrow').each(function() {
$(this).click(function(event) {
var resid = $(this).attr('name');
var post_data = {
'resid' : resid,
'<?php echo $this->security->get_csrf_token_name(); ?>' : '<?php echo $this->security->get_csrf_hash(); ?>'
};
var self = this;
if(resid){
$.ajax({
type: 'POST',
url: "/ci_theyaw/restaurants/plusrepo",
data: post_data,
success: function(data){
//console.log($(this).siblings('.rep_count').text());
$(self).addClass('up_arrowed').removeClass('up_arrow');
$(self).css('background-position','0 40px');
$(self).next('.rep_count').html(data);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
console.log(xhr.responseText);
alert(thrownError);
}
});
}
});
});
これは、仕事をする完全な機能です。ここで、更新するクラスはup_arrow
->up_arrowed
で、関数のセレクターは ですup_arrow
。しかし、更新後はとにかく実行されます。