2012-02-27 6 views
1

live()スクリプトをon()に切り替えることが困難な場合があります。私は火災と同じjsファイルに複数のon()を持っています。何らかの理由で、私がon()に切り替えると、最初のクリックは発生しましたが、2番目のクリックは発生しませんでした。ここに私のコードです。jQuery Multiple On()

これを実行すると、ウィンドウが開きます。

$("#Add_Member").on("click",function() { 
    // Do Something 
}); 

私はこれを使用できます。しかし、をクリックすると...

$("#Close_Add_Member").on("click",function() { 
}); 

何も起こりません。助言がありますか? UPDATED

- これは詳細に

おそらく
$("#Add_Member").on("click",function() { 
     // Get Member ID  
     var Member_id = $(".Window").attr("id");  
     var dataString = "MemberId="+Member_id+""; 

    $.ajax({ 
     type: "POST", 
     url: "includes/file.php", 
     timeout: 3000, 
     data: dataString, 
     cache: false, 
     success: function(myhtml){ 
      // Success 
     } 
    }); 

}); // End Add Member 
+0

ここにはたくさんあるわけではありません。 #Close_Add_Memberは実際のIDですか? – MrBoJangles

+0

私は、イベントが 'alert()'や 'console.log()'など、呼び出された関数にいくつかのデバッグコードを追加することで、最初に接続されたことを確認することをお勧めします。このコードが実行されると、問題は 'on() 'ではなく関数自体にあります – raina77ow

+0

元の投稿を更新しました – Joe

答えて

0

を解雇された最初のクリックで、Close_Add_Member持つ要素がADD_MEMBERクリックがDOMの新しい部分を開き、レンダリング後までに定義されていませんか?もちろん

$(document).on("click", "#Close_Add_Member", function() { 

}); 

、近い親を使う方が良いでしょう:それはケースであること、あなたはそうのように、.on()との結合の.bind()スタイルを使用しますが、代わりに.delegate()スタイルを使用することはできません#より#Close_Add_Memberが選択されますが、#Close_Add_Memberが含まれていなければなりません。.on()に電話をかけたときに存在します。

+0

元の投稿を更新しました – Joe

+0

$(document).on( "click"、 "#Close_Add_Member"、function(){これは完璧です。 – Joe