2016-12-14 4 views
0

Ich möchte eine ID der Schaltfläche "B" ändern, wenn die Schaltfläche "A" angeklickt wird, und hören Sie das Click-Ereignis von 'B' mit Jquery, aber mein Code funktioniert nicht, dies ein Beispiel für meinen Code:Hör-Ereignis nach der ID-Änderung

$(function() { 

    $(".nuttonA").click(
     function() { 

      $("#buttonB").attr("id","notButtonB"); 
     }); 

    $("#notButtonB").click(function(){ 
     console.log(" notButtonB is clicked "); //show nothing 
    }); 
}); 
+2

warum möchten Sie die ID ändern? vielleicht fügen Sie eine Klasse oder ein Daten-Attribut, das Sie hören auf –

+0

Ich möchte Javascript-Verhalten in diesem Fall verstehen – mustafa918

Antwort

1

Ich denke, Sie brauchen Ereignisdelegierung. versuchen Sie dies:

$(function() { 

    $(".buttonA").click(
     function() { 

      $("#buttonB").attr("id","notButtonB"); 
     }); 

    $("body").on("click", "#notButtonB",function(){ 
     console.log(" notButtonB is clicked "); //show nothing 
    }); 
}); 
+0

Vielen Dank, es funktioniert – mustafa918

1

Zeit, was Sie verwenden eine „direkte“ Bindung bezeichnet, die nur an dem Element angehängt werden kann, die das Ereignis verbindlich Aufruf zum Zeitpunkt des Code macht auf der Seite vorhanden ist.

Sie müssen Event Delegation mit delegierten Ereignissen Ansatz bei der Bearbeitung von Eigenschaften verwenden.

Allgemeine Syntax

$(document).on('event','selector',callback_function) 

Beispiel

$(document).on('click', ".nuttonA", function(){ 
    $("#buttonB").attr("id","notButtonB"); 
}); 
$(document).on('click', "#notButtonB", function(){ 
    //Your code 
}); 

Anstelle von document sollten Sie am nächsten statischen Behälter verwenden.

Verwandte Themen