2013-05-03 5 views
5

Dank jQuery bindet die .on-Methode einen Trigger an ein Element. Ich habe eine html wie:jquery: Was passiert nach mehrmaligem Binden eines Ereignisses?

<div class='xyz'>click me</div> 

und Skript wie:

$('.xyz').on('click', function(){ alert('why?'); }); 
$('.xyz').on('click', function(){ alert('why?'); }); 

Klick auf click me div löst Alarm 2 mal. Es ist in Ordnung, aber:

  1. Was genau passiert, nachdem sie auf die div zweiten Klick-Trigger-Bindung?
  2. Ist es ein Browserverhalten oder wird es von jquery-Variablen ausgeführt?

hier ist die Geige: http://jsfiddle.net/hpmhpm/FCReC/

Antwort

4

Was ist mit der div genau passiert nach dem zweiten Klick-Trigger-Bindung?

JQuery Registers einen neuen Click-Ereignishandler auf .xyz, Egal, wie viele der Event-Handler sind bereits mit dem Element angebracht

Ist es ein Browser Verhalten oder ihre getan durch jquery Variablen?

Es wird von jquery getan


Sie Handler so viele Ereignis haben, können Sie auf dem gleichen Element möchten, sollten Sie ein Szenario -

Diese vollkommen gültig ist:

$('.xyz').on('click', function(){ // do some work }); 
$('.xyz').on('click', function(){ // do some other work }); 
+0

So jquery hat eine Art Variable oder ein Array gesetzt, um binded Trigger zu speichern, habe ich recht? – HPM

+1

Ja, ihre ist eine Art von Eigenschaft, dass jedes Element "Event Listener" hat, können Sie überprüfen, welche Ereignisse an bestimmten Element in Webkit Developer Tools, –

+0

nur für klar, ist Ereignis Feuer Auftrag Fifo oder Lifo? – sasjaq

Verwandte Themen