2016-07-11 15 views
0
<button class="changeMe"> Click Me </button> 
$(".changeMe").on("click", function(){ 
    console.log("I should only work the first time!") 
    $("changeMe").addClass("secondClass").removeClass("changeMe"); 
}); 

$(".secondClass").on("click", function(){ 
    console.log("Now I should Work!") 
}); 

を動作していないこれは私のコードがどのように見えるか、基本的です。変更ボタンクラスを動的に

ボタンをクリックします。 Chromeデベロッパーツールは、クラスが削除されたことを示します。 ボタンをもう一度クリックすると、jqueryコードの同じビットが、そのクラスを指しているクラスであってもdosntが存在する場合でも実行されます。

どうしたらいいのですか?

EDIT :: Ooopssがドットを忘れました。私は私のソリューションにドットを持っています。これはデモンストレーションの目的にすぎません。ドットを追加しました。

+1

あなたは手動でクラスを変更しているため、イベントの委任を使用する必要があります。クラス名の選択には '.'が必要です。 – RRK

+2

あなたはクラスを表すために_dot_を忘れていました:) –

+0

セレクタがJqueryでどのように動作するか、ドットを使ってクラスを選択するか、#を選択するか、他の種類のセレクタを学ぶ必要があります。 CSSセレクタ:https://api.jquery.com/category/selectors/basic-css-selectors/ – jamesjara

答えて

0

1)クラス名の前に.を追加し、それは$(".changeMe")なり、$(".secondClass")

2)を使用し$(document).on("click")イベント

試してみてください。

$(document).on("click",".changeMe", function(){ 
 
    console.log("I should only work the first time!") 
 
    $(".changeMe").addClass("secondClass") 
 
    $(".changeMe").removeClass("changeMe"); 
 
}); 
 

 
$(document).on("click",".secondClass", function(){ 
 
    console.log("Now I should Work!") 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<button class="changeMe"> Click Me </button>

0

このコードがすべき仕事

$("body").on("click", '.changeMe', function(){ 
    console.log("I should only work the first time!") 
    $(".changeMe").addClass("secondClass").removeClass("changeMe"); 
}); 

$("body").on("click", '.secondClass', function(){ 
    console.log("Now I should Work!") 
}); 
+0

ありがとう、ありがとう – Arif

0

.secondClassをクリックしてください。イベントを動的にバインドする必要があります。

$(document).on("click",".secondClass", function(){ 
    console.log("Now I should Work!") 
}); 
0

クラスを手動で変更するため、イベント委任を使用する必要があります。また、クラス名の選択には.が必要です。

編集:代わりにイベント委任クラスが追加された後、あなたは、番目のクラスにイベントをバインドし、以下のように使用することができます。

one()を使用してください。

$(".changeMe").one("click", function(e){ 
 
    console.log("I should only work the first time!") 
 
    $(".changeMe").addClass("secondClass").removeClass("changeMe"); 
 
    $(".secondClass").on("click", function(){ 
 
     console.log("Now I should Work!") 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button class="changeMe"> Click Me </button>

+1

これはアプリに完全に適合します。 .oneの事を忘れないでください。 –

0

次のことを試してみてください。

$(".changeMe").on("click", function(e){ 

    if($(e.target).is('.changeMe')) { 
    console.log("I should only work the first time!") 
    $(".changeMe").removeClass("changeMe").addClass("secondClass"); 
    } else { 
    console.log("Now I should Work!"); 
    } 
}); 
関連する問題