0

私は現在、このコードのようなものを実行しています:

function blah() {
jQuery(".class1").on("click", function() {
    jQuery(this).text('Validate').addClass('class2').removeClass("class1");
   //more stuff here
    jQuery(".class2").on("click", function() {
           jQuery(this).removeClass("class1");
           //More stuff here

これは、クリック イベントが伝播し、クリックが発生するたびにクリック イベントが複数回追加されるため、好ましくありません。最初のセレクターを閉じて(そのように)クリックイベントを個別に実行しようとしましたが、2番目のクリックイベントは発生しませんでした(!):

function blah() {
jQuery(".class1").on("click", function() {
    jQuery(this).text('Validate').addClass('class2').removeClass("class1");
});
jQuery(".class2").on("click", function() {
           jQuery(this).removeClass("class1");
           //More stuff here

最初のクリックで 1 つのことが発生し、2 回目のクリックでクリック イベントが 2 倍になることなく別のことが発生するようにコードを構造化するにはどうすればよいですか?

4

1 に答える 1

1

あなたが必要

jQuery(document).on("click", ".class1", function() {
    jQuery(this).text('Validate').addClass('class2').removeClass("class1");
});
jQuery(document).on("click", ".class2", function() {
           jQuery(this).removeClass("class1");
           //More stuff here
});

デモ:フィドル

于 2013-08-19T00:31:13.387 に答える