データベースから更新された値を返す ajax 関数を使用しています。特定のボタンのクリックイベントの下に実装されています。
DIV :
<div class="rep">
<div class="up_arrow"></div>
<div class="rep_count"></div>
</div>
1 ページに約 10 個の同じ div が繰り返されています。up_arrow
ユーザーがクリックする場所です。
のデータを更新しrep_count
、 のクラスをup_arrow
に変更しようとしていup_arrowed
ます。
Ajaxの成功機能:
success: function(data){
$(this).addClass('.up_arrow').removeClass('.up_arrowed');
$(this).css('background-position','0 40px');
$(this).next('.rep_count').html(data);
}
この成功関数は、クリック関数で呼び出される ajax 関数の一部であり、this
その兄弟を参照するために使用している理由です。これは私が期待していることをしていません。siblings
の代わりに使ってみましnext
たが、それも魔法のようではありません。
事前にご協力いただきありがとうございます。
編集: クリック機能:
$('.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(); ?>'
};
if(resid){
$.ajax({
type: 'POST',
url: "/ci_theyaw/restaurants/plusrepo",
data: post_data,
success: function(data){
//console.log($(this).siblings('.rep_count').text());
$(this).addClass('.up_arrow').removeClass('.up_arrowed');
//$(this).css('background-position','0 40px');
//$(this).next('.rep_count').html(data);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
console.log(xhr.responseText);
alert(thrownError);
}
});
}
});
});