同じクラスの.button
を持つhrefのセットの一部であるhrefをクリックすると、Ajaxリクエストが発生します。 HTMLは次のようになります。クリックしたhrefのトグルクラス
<div id="button-container">
<a href="#" class="button red" data-id="1"></a>
<a href="#" class="button red" data-id="2"></a>
<a href="#" class="button red" data-id="3"></a>
<a href="#" class="button red" data-id="4"></a>
</div>
HREFのは.button
自身がdiv要素#button-container
に別々のAJAX呼び出しを介してロードされ、ページのロード時に利用できていないクラスを持つ、以来、私は上のjQueryを使用しています()発射するアヤックスhrefの.button
をクリックしてください。 javacriptは次のようになります。
jQuery('#button-container').on('click', '.button', function(e){
e.preventDefault();
var id = jQuery(this).data('id');
jQuery.ajax({
url: ajaxVars.ajaxurl,
type:'POST',
async: true,
cache: true,
timeout: 10000,
data: 'action=button_action&id=' + id,
success: function(value){
if (parseInt(value) == id) {
jQuery(this).removeClass('red').addClass('green');
} else {
jQuery(this).removeClass('green').addClass('red');
}
},
error: function() {
//alert(error);
}
});
});
ajaxは必要に応じて起動し、成功するとサーバーから応答が返されます。成功すると、href .button
の色を表すクラスを.red
から.green
に切り替える必要があります。逆も同様です。これが私の問題です。コンソールにエラーa.ownerDocument is undefined
が表示されます。これは、クラスを削除するときに発生します。また、「クリックされたhrefのクラスを切り替えるだけ」する必要があるため、jQuery(this)
を使用しています。
上記のシナリオでhrefのクラスを個別に切り替える方法に関するアイデアはありますか?
よろしく、 ジョン
うーん、私のセットアップjsFiddleをし、同じエラーを取得していない:あなたはオプションとして
context
プロパティを渡すことで、クリックされたアンカーすることを強制することができます。成功メソッドで真と偽の両方がエラーなしでクラスを変更しました。 – j08691