私のHTMLページには、最初に「show-update」というクラス名を持つボタンがあります。そのボタンをクリックすると、そのボタンは別のクラス名に変更され、その特定のクラスに別のクリック イベントを設定したいと考えています。しかし、私はまだそれを行うことに成功していません。それを修正する方法を知っている人はいますか?私はjquery 1.72を使用しています
これは私のコードhttp://jsfiddle.net/dwGCH/1/です
私のHTMLページには、最初に「show-update」というクラス名を持つボタンがあります。そのボタンをクリックすると、そのボタンは別のクラス名に変更され、その特定のクラスに別のクリック イベントを設定したいと考えています。しかし、私はまだそれを行うことに成功していません。それを修正する方法を知っている人はいますか?私はjquery 1.72を使用しています
これは私のコードhttp://jsfiddle.net/dwGCH/1/です
JSFiddle http://jsfiddle.net/dwGCH/3/を更新しました
$('.show-update').click(function() {
$(this)
.addClass('update-profile')
.removeClass("show-update")
.unbind()
.click(function() {
alert('updated');
});
alert('change to update');
});
$(document).on('click', '.update-profile', function(){
alert('updated');
});
$(".show-update").on('click', function(e){
// some function here
// ...
$(this).addClass("update-profile").removeClass("show-update").off('click');
alert('change to update');
});
ここにフィドルがあります:http://jsfiddle.net/dwGCH/9/
最初に一時クラスにクリック イベントを追加し、次に、更新されたクラスが存在する場合にのみ発生するボタン クラスにクリック イベントを追加します。
よくわかりませんが、このコードはクリックごとに 2 つのハンドラーを切り替えます。
$('.update-profile').on('click', function(){
alert('updated');
});
$(".show-update").on('click', fn1);
function fn1(event)
{
// some function here
// ...
$(this).addClass("update-profile");
$('.update-profile').removeClass("show-update");
$(this).off('click');
$(this).on('click', fn2);
alert('fn1');
}
function fn2(event)
{
// some function here
// ...
$(this).removeClass("update-profile");
$('.update-profile').addClass("show-update");
$(this).off('click');
$(this).on('click', fn1);
alert('fn2');
}