Yanıtlar:
Genellikle, olay işleyicileri, örneğin onsubmit, yanlış döndürmek, olaya gerçekte ateş etmemesini söylemenin bir yoludur. Diyelim ki, bu onsubmitdurumda, formun gönderilmediği anlamına gelir.
event.preventDefault()bu işlev için kullanmak daha iyidir . Yanlış döndürmenin onaylanmadığına inanıyorum ve artık her zaman çalışmıyor.
return falseyöntemde, bu bir şey değiştirir mi?
Sık sık bir 'yanlış dönüş' koymanız gerektiğinden bahsettiğinizi tahmin ediyorum; etkinlik işleyicilerinizdeki ifadeyi, yani
<a href="#" onclick="doSomeFunction(); return false;">...
'Yanlış dönüş'; bu durumda href = "#" ile gösterildiği gibi tarayıcının geçerli konuma atlamasını durdurur - bunun yerine yalnızca doSomeFunction () yürütülür. Bağlantı etiketlerine etkinlik eklemek istediğinizde kullanışlıdır, ancak tarayıcının her tıklamada her bir bağlantıya yukarı ve aşağı atlamasını istemezsiniz.
Olayın yayılmasını durdurmak için kullanılır . Her ikisi de bir tıklama olay işleyicisiyle iki öğeniz olduğunu görürsünüz (örneğin)
-----------------------------------
| element1 |
| ------------------------- |
| |element2 | |
| ------------------------- |
| |
-----------------------------------
İç öğeye (element2) tıklarsanız, her iki öğede de bir tıklama olayını tetikler: 1 ve 2. Buna "Olay köpürmesi" denir. Olayı yalnızca element2'de işlemek istiyorsanız, olay işleyicisini durdurmak için olay işleyicisinin false değerini döndürmesi gerekir.
Başka bir örnek, tıklama işleyicisinin bağlantısı olacaktır. Bir bağlantı formunun çalışmasını durdurmak istiyorsanız. Bir onclick işleyicisi ekleyebilir ve false değerini döndürebilirsiniz. Etkinliğin varsayılan işleyiciye yayılmasını durdurmak için.
falsebir olay işleyicisinden dönmek , bir olayla ilişkili varsayılan eylemi önleyecektir; bunu arama event.preventDefault()veya ayar event.returnValue = false(IE) yoluyla da yapabilirsiniz ; etkinliğin köpürmesini durdurmak için, (IE) öğesini aramanız event.stopPropagation()veya ayarlamanız gerekirevent.cancelBubble = true
Ee ... boolean bir fonksiyonda 'doğru değil' göstermeye ne dersiniz?
"Js, ne zaman 'return false;" Diğer arama sonuçları arasında Chris Coyier'in CSS-Tricks sitesinde çok daha kullanışlı ve anlaşılır bulduğum bir sayfa vardı: 'return false;' ve 'e.preventDefault ();'
Makalesinin özü:
function () {dönüş yanlış; }
// EŞİTTİR
işlev (e) {e.preventDefault (); e.stopPropagation (); }
yine de tüm makaleyi okumanızı tavsiye ederim.
Güncelleme: return false kullanmanın yararlarını tartıştıktan sonra; e.preventDefault () yerine; & e.stopPropagation (); çalışma arkadaşlarımdan biri, yanlış döndürmenin de bu makalede ana hatlarıyla belirtildiği üzere geri arama yürütülmesini durdurduğuna dikkat çekti: jQuery Events: Stop (Mis) Return False kullanarak .
function() { return false; }EQUAL TO function(e) { e.preventDefault(); e.stopPropagation(); }, ama saf js, aynı değil, aslında function() { return false; }EQUAL TO function(e) { e.preventDefault(); }. O değil yayılmasını durdurmak.
Bence daha iyi bir soru, neden bir boole dönüş değerleri kümesi değerlendirdiğiniz bir durumda doğru / yanlış kullanmıyorsunuz ? Yani, muhtemelen true / null, true / -1, başka çeşitli olabilir. Javascript "falsy" değerleri yerine geçecek, ama neden bunu yapasın ki?
Bir tutturma etiketinden javascript kodunu tetiklemek istediğinizde, javascript: sözde protokol yerine onclick işleyicisi kullanılmalıdır. Onclick işleyicisinde çalışan javascript kodu, doğru veya yanlış (veya değerlendirmelerden doğru veya yanlış değerine doğru bir ifade) etikete geri dönmelidir - eğer doğru döndürürse, çapanın HREF değeri normal bir bağlantı gibi izlenecektir. False değerini döndürürse, HREF dikkate alınmaz. Bu yüzden "dönüş yanlış;" genellikle bir onclick işleyicisi içindeki kodun sonuna eklenir.
Bir işlevde bir return ifadesi çağrıldığında, bu işlevin yürütülmesi durdurulur. Belirtilirse, belirli bir değer işlev arayanına döndürülür. İfade atlanırsa, bunun yerine undefined döndürülür.
Daha fazla bilgi için MDN dokümanları sayfasınareturn göz atın .
yalnızca işlevde bazı çalışmalarınız varsa (bazı testlerle) veya bazı işlevleri durdurmak istiyorsanız false kullanarak dönüş, örnek "false"
Ayrıca, https://www.w3schools.com/jsref/event_preventdefault.asp adresinden okumak için bu kısa ve ilginç bağlantı
Tanım ve Kullanım
PreventDefault () yöntemi, iptal edilebilirse olayı iptal eder; yani, olaya ait varsayılan eylem gerçekleşmez.
Örneğin, bu şu durumlarda yararlı olabilir:
Clicking on a "Submit" button, prevent it from submitting a form
Clicking on a link, prevent the link from following the URL
Not: Tüm olaylar iptal edilemez. Bir olayın iptal edilebilir olup olmadığını öğrenmek için cancelable özelliğini kullanın.
Not: preventDefault () yöntemi, bir etkinliğin DOM aracılığıyla daha fazla yayılmasını engellemez. Bunu işlemek için stopPropagation () yöntemini kullanın.