2015-12-02 8 views
8

bitmeden, böyle, işlevi sonunda event.preventDefault(); bkz: Danevent.preventDefault() her zaman sadece bulabilirim neredeyse tüm örnekler/şablonları komut olarak fonksiyonların

$('.navbar-nav li a').bind('click', function(event) { 
    var $anchor = $(this); 
    $('html, body').stop().animate({ 
     scrollTop: $($anchor.attr('href')).offset().top 
    }, 1500, 'easeInOutExpo'); 
    event.preventDefault(); 
}); 

benim

$('.navbar-nav li a').bind('click', function(event) { 
    event.preventDefault(); 

    var $anchor = $(this); 
    $('html, body').stop().animate({ 
     scrollTop: $($anchor.attr('href')).offset().top 
    }, 1500, 'easeInOutExpo'); 
}); 

Yani ne eksik: bakış açısı, fikri bu gibi "varsayılan davranış sonra yapmamız gereken ne gerekiyorsa hemen durdurun" dir?

+0

'derhal varsayılan durdurmak Olaylar konulur behavior' kuyrukta bu, işleyicinin üstüne veya altına koymak için fark yaratmaz. Ancak, TrueBlueAussie'nin cevabına bakın, eğer bir sebepten ötürü yayılımı durdurmak istiyorsanız, “yanlış geri dönüş” ifadesini kullanarak, genellikle onu alt duruma koymak daha uygundur. Söyledim, her zaman okunabilirliği için her zaman üstüme attım ama bu benim kendi düşüncem. –

cevap

11

Gösterilen iki özel örnekte fark yaratmaz. İstediğiniz yere koyunuz.

Sonunda sahip olmanın olağan nedeni, genellikle geri dönüşün gerçekleştiği yer olan return false;'un yerine geçmesidir. return false, e.preventDefault()vee.stopPropagation() için bir kısayoldur. Eğer koşullu durdurmak için gerektiğinde

akılda tutulması gereken başka bir şey preventDefault() (bir if vb) ortasında gider bu durumda olduğunu :)

İlgili konular