SORU
24 EYLÜL 2013, Salı


olay.() preventDefault return false (jQuery)vs.

event.preventDefault() return false aynı olup olmadığını merak ettim.

some tests yaptım ve görünen o ki

  • Olay işleyicisi eski model kullanarak, örneğin eklenir

    elem.onclick = function(){
        return false;
    };
    

    Sonra, return false varsayılan eylem, event.preventDefault() gibi engeller.

  • Olay işleyicisi örneğin addEventListener kullanarak eklenir

    elem.addEventListener(
        'click',
        function(e){
            return false;
        },
        false
    );
    

    Sonra, return false varsayılan eylemi engellemez.

Tüm tarayıcılar böyle mi davranır?

event.preventDefault() return false arasında fazla bir fark var mı?

Bazı belgeler (yapamadım MDN) return false hakkında *bazı durumlarda 13* gibi davranmaya nerede bulabilirim?


Benim sorum ise her iki soruyu hemen hemen aynı başlık varsa bile sadece lütfen yinelenen event.preventDefault() vs. return false, Bir olarak işaretlemek yok yani düz javascript, DV.

CEVAP
24 EYLÜL 2013, Salı


W3C Document Object Model Events Specification1.3.1. Olay kayıt arabirimleribu EventListener handleEvent dönüş değeri yok durumları:

handleEvent Bu yöntem bir olay türü gerçekleştiğinde denir hangi EventListener arabirimini kaydedildi. [...]Geri Dönüşü Değer

altında1.2.4. Etkinlik İptalbelge de belirtiyor

İptal Olayı preventDefault çağırarak gerçekleştirilir yöntem. Eğer bir veya daha fazla EventListeners sırasında preventDefault arayın olay faz varsayılan eylemi iptal edilecektir akışı.

doğru / yanlış dönen bir tarayıcıyla olabilecek herhangi bir etkisi kullanarak engelleyin ve event.preventDefault() kullanmak gerekir.

Güncelleme

HTML5 spec aslında bir dönüş değeri farklı nasıl davranacağını belirtir. Section 6.1.5.1 of the HTML Spec belirtir

Eğer dönüş değeri boolean false WebİDL bir değer ise, iptal o zaman olay.

her şey için ama "" olay. fare üzerinde

Sonuç

Hala eski spec ve böylece eski tarayıcılar ile uyumlu olacak bu yana bir çok proje için event.preventDefault() kullanmanızı tavsiye ederim. Eğer sadece bir kesim tarayıcılar destek gerekiyorsa, iptal etmek için yanlış dönen Tamam.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Curso Online Gratuito

    Curso Online

    4 Aralık 2011
  • merumputdotcom

    merumputdotc

    24 ŞUBAT 2012
  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011