2016-09-17 1 views
1

Ich habe versucht mousemove und click und das Ereignis wird immer beim Laden der Seite ausgelöst.Warum scheint Chrome Benutzerereignisse auszulösen?

Ich habe sogar versucht, eine 5 Sekunden Verzögerung auf die Bindung zu setzen, und das Ereignis wird noch ausgelöst.

 setTimeout(function() { 
      console.log('click'); 
      $(document).bind("click", self.intervalEnd()); 
     }, 5000); 

    }, 
    intervalEnd: function(){ 
     console.log('intervalEnd called'); 
     console.log(this.intervalID); 
     window.clearInterval(this.intervalID); 
    }, 

Antwort

5

Nein, das Ereignis wird nicht auf Pageload, aber Ihre Funktion auf Pageload nicht ausführt, weil das ist, was Sie ihm gesagt haben.

Referenz die Funktion, anstatt sie zu rufen, und verwenden Sie on()

$(document).on("click", self.intervalEnd); 

Jedes Mal, wenn Sie Klammern an eine Funktion hinzuzufügen, rufen Sie sie und geben das Ergebnis, so dass Ihr Code ist der gleiche wie

var result = self.intervalEnd(); // most likely returns undefined 
$(document).bind("click", result); // still undefined 
+0

Typo. Ich weiß das. Danke für Ihre Sorgfalt. –

+0

Best markiere es als gelöst, dann. Und geben Sie @adeneo die Antwort. – Whothehellisthat

Verwandte Themen