JQuery'deki özel olayların gerçekte nasıl uygulandığı hakkında iyi bir kaynak bulamıyorum. onlarjQuery Özel olayları tam olarak nasıl çalışır?
8
A
cevap
7
Bu şekilde ödeme şöyledir:
// bubbling is internal
trigger: function(event, data, elem /*, bubbling */) {
// Event object or event type
var type = event.type || event,
bubbling = arguments[3];
// Handle a global trigger
if (!elem) {
// Don't bubble custom events when global (to avoid too much overhead)
event.stopPropagation();
// Only trigger if we've ever bound an event for it
if (jQuery.event.global[ type ]) {
jQuery.each(jQuery.cache, function() {
if (this.events && this.events[type]) {
jQuery.event.trigger(event, data, this.handle.elem);
}
});
}
}
// ... snip ...
// Trigger the event, it is assumed that "handle" is a function
var handle = elem.nodeType ?
jQuery.data(elem, "handle") :
(jQuery.data(elem, "__events__") || {}).handle;
if (handle) {
handle.apply(elem, data);
}
var parent = elem.parentNode || elem.ownerDocument;
// ... snip ....
if (!event.isPropagationStopped() && parent) {
jQuery.event.trigger(event, data, parent, true);
} else if (!event.isDefaultPrevented()) {
// ... snip ...
jQuery.event.triggered = true;
target[ targetType ]();
}
}
Ne oluyor burada olduğunu var :
Ne zaman trigger
, olayın global olarak tetiklenip tetiklenmediğini görmek için jQuery denetimleri adı verilir ($.trigger("event_name");
). o değil küresel tetiklenen ise
, ve yayılma ve söz konusu eleman bir üst elemanı (!event.isPropagationStopped() && parent
) daha sonra jQuery ebeveyn elemana elle tetikleyici olay çağırır etti durdu edilmemiştir.
jQuery.event.trigger(event, data, parent, true);
biraz daha var oluyor - jQuery kaynak kodunda event.js bakın.
1
Kontrol dışarı vb olay baloncuklanmasını simüle nasıl gibi tutorials
$(document).bind("eventType", ...);
// This is equivalent to the plugin's $.subscribe("eventType", ...);
$(document).trigger("eventType");
// equivalent to plugin's $.publish("eventType");
Ayrıca, bu SO question
İlgili konular
- 1. Tam olarak nasıl çalışır?() {}() Çalışır?
- 2. Qt nasıl çalışır (tam olarak)?
- 3. $ .mobile.activePage özelliği tam olarak nasıl çalışır?
- 4. Paramiko Channel.recv() tam olarak nasıl çalışır?
- 5. Heroku faturalandırma dynosları tam olarak nasıl çalışır?
- 6. Sistem() tam olarak linux'ta nasıl çalışır?
- 7. JQuery animate işlevi dahili olarak nasıl çalışır?
- 8. jQuery özel etkinliği eşzamanlı olarak tetikler mi?
- 9. gcc seçeneği -fstack-check tam olarak nasıl çalışır?
- 10. Google App Engine Günlükleri tam olarak nasıl çalışır?
- 11. Tam olarak tam olarak ne yapar? (...).
- 12. jQuery ile Köprüyü Nasıl Engellenir Olayları Geçici Olarak Tıklatır?
- 13. Özel olayları başlatılamıyor
- 14. jQuery klavye olayları nasıl test edilir?
- 15. JavaScript tam olarak nasıl yorumluyor?
- 16. VB.Net'te "Özel Etkinlik" nasıl çalışır?
- 17. Özel model olayları nasıl oluşturulur laravel 5.1?
- 18. Polimer'deki özel olayları nasıl gönderir ve dinlersiniz?
- 19. jQuery ile Delegating Hammer.js olayları
- 20. Olay işleme jQuery unclick() ve unbind() olayları?
- 21. Winforms kullanıcı denetimleri özel olayları
- 22. Ayrıştırma analizleri özel olayları izlemiyor
- 23. CALayer alt sınıfı nasıl tam olarak özel bir özellik kullanıyorsunuz?
- 24. jQuery .unbind() yöntemi yalnızca jQuery tarafından oluşturulan etkinliklerde çalışır mı?
- 25. Java'da tam ekran özel modunda klavyeden ve fareden gelen olayları nasıl ele alırsınız?
- 26. Olayları açısal olarak nasıl test edebilirim?
- 27. IsPostback teknik olarak nasıl çalışır?
- 28. webRTC işlevsel olarak nasıl çalışır?
- 29. Jquery tam takvim:
- 30. MVP'yi Kullanma - Olayları Düzgün Olarak Test Etmek İçin Olayları Kullanma
Sanırım bir API açıklaması yapmak istemediklerini, ancak gerçekte nasıl çalıştığına dair teknik bir açıklama istemediklerini düşünüyorum. – ThiefMaster
@ThiefMaster Bu durumda, öğrenmenin en iyi yolu, kaynağa bakmaktır :) http://james.padolsey.com/jquery/ –