2017-02-16 19 views
0

was die verschiedenen zwischen ist: -Ereignispropagierung Ereignisbindung

$("#btn").click(handler); 

und

$("#btn").on('click', handler); 

Beide oben wird eine Behandlungsroutine auf das Element auf click Ereignis binden. Wann benutzt man welchen?

+0

Sekunden ein verwendet, wenn Elemente hinzugefügt/durch Jquery erstellt selbst. Übrigens wird es sowohl für –

+0

@Anant funktionieren, also meinst du, wenn das Element, das hinzugefügt wird, dynamisch hinzugefügt wird? – Shubham

+0

@Shubham überprüfen Sie den gegebenen Link, Sie werden die richtige Erklärung bekommen –

Antwort

1

So wie Sie von jquery Quellcode sehen können .click ist nur eine Hilfsfunktion. Intern wird der Anruf an this.on(name, null, data, fn) gemappt. Es ist also mehr Bequemlichkeit als alles andere, intern rufen alle diese Funktionen .on auf.

Extra. Sie können diese Ereignisse auch ohne params auslösen, was in dieser if-Anweisung auch shorthand ist. Dies löst das DOM-Ereignis für das Element aus, das aufgerufen wird, wie das Emulieren von Klick mit $button.click(), was wiederum eine Kurzform für $button.trigger('click') ist.

jQuery.each(("blur focus focusin focusout resize scroll click dblclick " + 
    "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + 
    "change select submit keydown keypress keyup contextmenu").split(" "), 
    function(i, name) { 

    // Handle event binding 
    jQuery.fn[ name ] = function(data, fn) { 
     return arguments.length > 0 ? 
      this.on(name, null, data, fn) : 
      this.trigger(name); 
    }; 
}); 
Verwandte Themen