2010-02-09 16 views
33

Tetikleme kodumda preventDefault'un çağrıldığını nasıl bilebilirim? "PreventDefault()" çağrısı metin alanlarına bağlantı etiketlerine veya basılmasını tıklamalar gibi şeyler yerel tarayıcı yanıtları önlemede hakkındadır Bildiğim kadarıylajQuery: event.preventDefault() öğesini özel etkinliklerle nasıl kullanırım?

$(document).trigger('customEvent', params); 
if (/* ??? */) 
    doDefaultActions(); 
+1

bir göz varsayılan eylem olmamalıdır .. –

+1

Bu eylemci, özel olmayan olaylar için de kullanılıyorsa, hala olay mekanizmanızda kullanabileceğiniz bir şeydir. –

+0

Özel etkinliğiniz gerçekten özelse, ne yapmaya çalışıyorsunuz? Normalde preventDefault, tarayıcı normal olanı yapmayacak şekilde kullanılır. Tarayıcının kendisi özel olayları bilmiyor veya önemsemiyor. –

cevap

45

tetik() Eğer bir olay nesnesi oluşturabilir eğer öyleyse de aynen böyle bir olay nesnesini alabilir: tetik görmek sonra

var event = jQuery.Event("customEvent"); 
$(document).trigger(event); 

o zaman kontrol edebilirsiniz preventDefault() şöyle denir edilmişse:

var prevented = event.isDefaultPrevented(); 
+0

Vay harika. Her gün bir şey öğrenin! – Pointy

+3

Evet, bugün jQuery API'sine bakarak kendim öğrendim. Yani hepimiz bugün öğreniyoruz! –

+0

Bu belgeleniyor gibi görünmüyor (en azından api.jquery.com'da) - yine de bulamıyorum. Dokümanlar şu an biraz daha iyi ama yine de bunu bir wiki yapacaklarını umuyorum. [edit: tamam kaynakta şimdi görüyorum !!] – Pointy

0

. Olay işleme döngüsü bittiğinde, bitti. Yapılan etkinlikler için, jQuery olay işleme sistemi ile ilgili olduğundan ve yerel tarayıcı işleviyle ilgili olmadığından, bunun herhangi bir etkisi olduğunu düşünmüyorum.

Kodunuz "dış dünya" ile iletişim kurmak için bir yerlerde bir tür bayrak ayarlayabilir.

[değiştir] İşleyicinin, exteral kodun bulabileceği bir yerde olay nesnesine başvuruda bulunmasını deneyebilir ve sonra harici olarak "isDefaultPrevented()" ile kontrol edin. Ancak bunun işe yarayıp yaramadığını bilmiyorum. nasıl varsayılan engellendi olsun veya olmasın, kullanım öğrenmek için soruyorsanız

1

özel etkinlikler (bunlar özel olan) .. olur bazı varsayılan eylemleri yok. başkalarına bu olayın köpüren etkisini durdurmak istiyorsanız bunun özel bir olaydır Öte yandan eğer

, o zaman .. .. hiyerarşi kadar kabarcıklar vermez triggerHandler de