Ich habe ein mouseDown-Ereignis und ein Click-Ereignis für dasselbe Element. Wenn ich darauf klicke, wird das Ereignis mouseDown ausgelöst (d. H. "Maus auf P gedrückt"), aber das click -Ereignis nicht. Wenn ich jedoch die mouseDown-Warnungsanweisung auskommentiert, zeigt das click-Ereignis seine Warnung an. Warum ist das? http://jsfiddle.net/A8vhq/Warum wird nach dem mouseDown -Ereignis auf demselben Element nicht ausgelöst, wenn ein Ereignis ausgelöst wird?
Antwort
Das ist, weil das Klicken nie geschieht, wenn die Warnmeldung angezeigt wird es unterbricht die mouseup-Ereignis auf dem Element, wodurch der Mausklick unterbrochen wird.
Verwenden Sie console.log('message')
, um Ihren Code anstelle von alert
zu testen.
Wenn jemand ein Modal verwenden muss - zum Beispiel, um den Code zum Ausführen von Klicks zu unterbrechen, dann schließen Sie den Klick auf Modal Close - wie können sie dieses Problem umgehen. Es taucht nur in Firefox für mich auf. – user1837608
Verwenden Sie statt alert
console.log
und es wird funktionieren.
Live-Demo:http://jsfiddle.net/A8vhq/1/
BTW, habe ich den Code ein wenig Refactoring:
$('p').on('mousedown', function (e) {
console.log('Mouse pressed on ' + e.target.nodeName);
});
$('p').on('click', function (e) {
console.log(e.target.nodeName + ' clicked');
});
ersetzen einfach alert
mit console.log
oder anderer nicht modalen Ausgang Weise.
- 1. Warum wird das Ereignis doubleclick nicht ausgelöst, nachdem das Ereignis mouseDown auf demselben Element ausgelöst wurde?
- 2. Warum wird dieses Onpaste-Ereignis nicht ausgelöst?
- 3. Verhindern, dass Klickereignis ausgelöst wird, wenn dblclick-Ereignis ausgelöst wird
- 4. Was passiert, wenn ein Ereignis ausgelöst wird
- 5. JavaScript Mouse-Up-Ereignis wird nicht ausgelöst
- 6. Trigger-Versprechen, wenn ein Ereignis ausgelöst wird
- 7. PreRender-Ereignis wird nicht ausgelöst
- 8. Warum Klick-Ereignis nicht ausgelöst wird?
- 9. "Backbutton" Ereignis wird nicht ausgelöst
- 10. Alarmmeldung anzeigen, wenn Ereignis ausgelöst wird
- 11. Ereignis, wenn die Position: sticky ausgelöst wird
- 12. In StringGrid verhindert goEditing, dass das MouseDown-Ereignis ausgelöst wird.
- 13. ASP.Net Session_Start-Ereignis wird nicht ausgelöst
- 14. UISearchBar und Ereignis ausgelöst, wenn 'X' Element angezapft wird
- 15. AjaxFileUpload wird nicht ausgelöst OnUploadComplete Ereignis
- 16. Wie ein Ereignis ausgelöst wird, wenn DataGrid.ItemsSource geändert wird
- 17. Welches Ereignis wird ausgelöst, wenn ein UserControl angezeigt wird?
- 18. Ereignis wird nicht ausgelöst, wenn Javascript zum Postback verwendet wird
- 19. Warum das Hashchange-Ereignis nicht auf www.google.com ausgelöst wird?
- 20. Autocomplete onItemClickListener-Ereignis wird nicht ausgelöst?
- 21. Benutzerdefiniertes Ereignis, das nicht ausgelöst wird
- 22. Jquery: Ereignis auswählen wird nicht ausgelöst
- 23. Keyup-Ereignis wird nicht ausgelöst - Backbone
- 24. BindingList.ListChanged Ereignis wird nicht ausgelöst, wenn die Eigenschaft geändert wird
- 25. createWriteStream ‚close‘ Ereignis nicht ausgelöst wird
- 26. JSF preRenderComponent-Ereignis wird nicht ausgelöst
- 27. HTML onClick-Ereignis wird nicht ausgelöst
- 28. Dynamisch hinzugefügtes Listenfeld-Ereignis wird nicht ausgelöst
- 29. FileSystemWatcher geändert Ereignis wird nicht ausgelöst
- 30. Ereignis "onDrag" wird in react.js nicht ausgelöst
anstelle der Warnung, versuchen Sie console.log, Sie sehen beide Ereignisse ausgelöst. Überprüfen Sie die Erklärung hier http://api.jquery.com/click/ – DG3
Vielen Dank ... Ich verwende keine Warnungen zum Testen, nur lernen und experimentieren mit verschiedenen Mausereignisse und konnte dieses Verhalten nicht verstehen. – user1263226
DG3, schaute ich und diese Verbindung und sah nichts, das diese spezifische Beobachtung/Verhalten erklären würde? – user1263226