私は以下の2つのリンクを持っています。ユーザーは、[編集]をクリックすると、私はここでcancel-edit
jQueryデータ属性の更新が機能していませんか?
<a class="btn btn-default js-edit" href="#" >Edit</a>
<a class="btn btn-default js-cancel" href="#" data-action="cancel-add">Cancel</a>
にキャンセルリンクのデータ-action属性を更新するこの達成するための私のスクリプトです:コンソールで
$(".container").on('click', '.js-edit', function (e) {
e.preventDefault();
$('a.js-cancel').data('action', 'cancel-edit');
console.log($('a.js-cancel').data('action'));
});
、上記の結果を期待通りです。つまりコンソール表示cancel-edit
上記のアクションの後で[キャンセル]リンクをクリックすると、以下のスクリプトは機能しません。コンソールで結果を表示しても、それでも出力されるのはcancel-add
ですか?
$(".container").on('click', '.js-cancel', function (e) {
e.preventDefault();
var a = $(this);
if (a.attr("data-action") == 'cancel-edit') {
// do something
}
console.log(a.attr("data-action"));
});
.data()でデータ属性を更新すると、マークアップが更新されないので、 'a.data( 'action')== 'cancel-edit''を使ってデータをチェックする必要があります。 –