event.preventDefault () vs. return false


Al─▒nan cevaba git


Di─čer olay i┼čleyicilerin belirli bir olay ba┼člat─▒ld─▒ktan sonra y├╝r├╝t├╝lmesini ├Ânlemek istedi─čimde, iki teknikten birini kullanabilirim. ├ľrneklerde jQuery kullanaca─č─▒m, ancak bu d├╝z JS i├žin de ge├žerli:

1. event.preventDefault()

 $('a').click(function (e) {
    // custom handling here
    e.preventDefault();
});
 

2. return false

 $('a').click(function () {
    // custom handling here
    return false;
});
 

Olay yay─▒l─▒m─▒n─▒ durdurman─▒n bu iki y├Ântemi aras─▒nda anlaml─▒ bir fark var m─▒?

Benim i├žin, return false; bir y├Ântemi yerine getirmekten daha basit, daha k─▒sa ve muhtemelen daha az hata var. Bu y├Ântemle do─čru k─▒l─▒f, parantez vb. Hakk─▒nda hat─▒rlaman─▒z gerekir.

Ayr─▒ca, y├Ântemi ├ža─č─▒rabilmek i├žin geri ├ža─č─▒rmadaki ilk parametreyi tan─▒mlamal─▒y─▒m. Belki de b├Âyle yapmaktan ka├ž─▒nmam ve preventDefault bunun yerine kullanmam─▒n baz─▒ nedenleri var ? Daha iyi yol nedir?


2878









Cevap say─▒s─▒n─▒ say: 13






return false gelen bir jQuery olay i┼čleyicisi i├žinde etkin bir ┼čekilde ├ža─čr─▒ ile ayn─▒d─▒r e.preventDefault ve e.stopPropagation ge├žirilen ilgili jQuery.Event nesne.

e.preventDefault() varsay─▒lan olay─▒n e.stopPropagation() ger├žekle┼čmesini ├Ânleyecek, olay─▒n k├Âp├╝rmesini ├Ânleyecek ve return false her ikisini de yapacak. Bu davran─▒┼č, farkl─▒ oldu─čunu not , normal (non-jQuery) olay i┼čleyicileri, burada, ├Âzellikle, return false etmez de─čil kadar k├Âp├╝ren gelen olay dur.

Kaynak: John Resig

Bir href t─▒klamas─▒n─▒ iptal etmek i├žin "return false" yerine event.preventDefault () kullanman─▒n faydas─▒ var m─▒?


2763







Deneyimime g├Âre, event.preventDefault () i┼člevinin return false kullan─▒lmas─▒na g├Âre en az bir avantaj─▒ vard─▒r. Bir olay etiketinde click olay─▒n─▒ yakalad─▒─č─▒n─▒z─▒ varsayal─▒m, aksi takdirde kullan─▒c─▒ ge├žerli sayfadan uzakla┼č─▒rsa bu b├╝y├╝k bir sorundur. T─▒klama i┼čleyiciniz, taray─▒c─▒ gezinmesini ├Ânlemek i├žin false d├Ând├╝r├╝rse, yorumlay─▒c─▒n─▒n return ifadesine eri┼čmeyece─či ve taray─▒c─▒n─▒n ba─člant─▒ etiketinin varsay─▒lan davran─▒┼č─▒n─▒ y├╝r├╝tmeye devam edece─či ihtimalini a├žar.

 $('a').click(function (e) {
  // custom handling here

  // oops...runtime error...where oh where will the href take me?

  return false;
});
 

Event.preventDefault () kullanman─▒n yarar─▒, bunu i┼čleyiciye ilk sat─▒r olarak ekleyebilmenizdir, b├Âylece i┼člevin son sat─▒r─▒na ula┼č─▒lmamas─▒na bak─▒lmaks─▒z─▒n, ├žapan─▒n varsay─▒lan davran─▒┼č─▒n─▒n patlamayaca─č─▒n─▒n garantisi vard─▒r (├Ârn. ├çal─▒┼čma zaman─▒ hatas─▒) ).

 $('a').click(function (e) {
  e.preventDefault();

  // custom handling here

  // oops...runtime error, but at least the user isn't navigated away.
});
 

414







Bu, sizin s├Âyledi─činiz gibi bir "JavaScript" sorusu de─čildir; jQuery tasar─▒m─▒ ile ilgili bir soru.

jQuery ve daha ├Ânce ba─članm─▒┼č al─▒nt─▒ gelen John Resig (i├žinde karim79 en mesaj─▒n─▒n ) genel ├žal─▒┼čmalar─▒nda nas─▒l olay i┼čleyicileri kayna─č─▒ yanl─▒┼č anlama oldu─ču g├Âr├╝l├╝yor.

Ger├žek: Yanl─▒┼č d├Ând├╝ren bir olay i┼čleyicisi, o olay i├žin varsay─▒lan eylemi ├Ânler. Olay yay─▒lmas─▒n─▒ durdurmaz. Etkinlik i┼čleyicileri, Netscape Navigator'─▒n eski g├╝nlerinden beri her zaman bu ┼čekilde ├žal─▒┼čt─▒.

MDN dok├╝mantasyon a├ž─▒klar return false bir olay i┼čleyicisi ├žal─▒┼č─▒r i├žinde

JQuery'de olanlar, olay i┼čleyicileri ile olanlarla ayn─▒ de─čildir. DOM olay dinleyicileri ve MSIE "ekli" olaylar tamamen farkl─▒ bir konudur.

Daha fazla okumak i├žin MSDN ve W3C DOM 2 Events belgelerine bak─▒n─▒z .


98







Genel olarak, ilk se├žene─činiz ( preventDefault() ) al─▒nacak oland─▒r, ancak hangi ba─člamda oldu─čunuzu ve hedeflerinizin ne oldu─čunu bilmek zorundas─▒n─▒z.

Yak─▒t Sizin Kodlama vs vs vs hakk─▒nda harika bir makale var return false; event.preventDefault() event.stopPropagation() event.stopImmediatePropagation() .


64







JQuery kullan─▒rken, return false onu ├ža─č─▒rd─▒─č─▒n─▒zda 3 ayr─▒ ┼čey yap─▒yor:

  1. event.preventDefault();
  2. event.stopPropagation();
  3. Geri arama i┼člemini durdurur ve ├ža─čr─▒ld─▒─č─▒nda hemen geri d├Âner.

Daha fazla bilgi ve ├Ârnekler i├žin bkz. JQuery Events: Durdurma (Mis) Return False kullanma .


56







onClick Bir element i├žin olaya ├žok say─▒da i┼člev asabilirsiniz . false Son ate┼členecek ki┼činin olaca─č─▒ndan nas─▒l bu kadar emin olabiliyorsun ? preventDefault ├ľte yandan, ├Â─čenin yaln─▒zca varsay─▒lan davran─▒┼č─▒n─▒ kesinlikle ├Ânleyecektir.


40







bence

event.preventDefault()

olaylar─▒ iptal etmenin w3c y├Ântemidir.

Bunu Event iptalindeki W3C spesifikasyonunda okuyabilirsiniz .

Ayr─▒ca her durumda return'i yanl─▒┼č kullanamazs─▒n─▒z. Href ├Âzniteli─činde bir javascript i┼člevi verilirken ve e─čer false d├Ând├╝r├╝rseniz, kullan─▒c─▒ yanl─▒┼č bir dize yaz─▒lm─▒┼č bir sayfaya y├Ânlendirilir.


19







Bence bunu yapman─▒n en iyi yolu kullanmakt─▒r event.preventDefault() ├ž├╝nk├╝ i┼čleyicide bir istisna ortaya ├ž─▒karsa, return false ifadesi atlan─▒r ve davran─▒┼č istedi─činiz ┼čeyin tam tersi olur.

Ancak, kodun istisnalar─▒ tetiklemeyece─činden eminseniz, istedi─činiz herhangi bir y├Ântemle devam edebilirsiniz.

Hala geri d├Ân├╝┼č ile gitmek false istiyorsan─▒z, t├╝m i┼čleyici kodunuzu a┼ča─č─▒daki gibi bir try catch blo─čuna koyabilirsiniz:

 $('a').click(function (e) {
  try{
      your code here.........
  }
   catch(e){}
  return false;
});
 

14







Tecr├╝belerime g├Âre, kullan─▒m─▒n her zaman daha iyi oldu─čunu d├╝┼č├╝n├╝yorum

 event.preventDefault() 
 

Pratik olarak g├Ânderim etkinli─čini durdurmak ya da ├Ânlemek i├žin, ne zaman istersek return falseevent.preventDefault() iyi sonu├ž vermek istiyoruz .


1







Aras─▒ndaki temel fark return false ve event.preventDefault() a┼ča─č─▒ya kod olmas─▒d─▒r return false y├╝r├╝t├╝lmez ve event.preventDefault() durumda kodunuzu bu ifadeye sonra y├╝r├╝t├╝l├╝r.

False return yazd─▒─č─▒n─▒zda, sahne arkas─▒ndakiler i├žin a┼ča─č─▒dakileri yap─▒n.

 * Stops callback execution and returns immediately when called.
* event.stopPropagation();
* event.preventDefault();
 

1







e.preventDefault ();

Sadece bir eleman─▒n varsay─▒lan eylemini durdurur.

├ľrnek ├ľrn .::-

k├Âpr├╝n├╝n URLÔÇÖyi izlemesini ├Ânler, formu g├Ândermek i├žin g├Ânder d├╝─čmesini engeller. ├çok say─▒da olay i┼čleyiciniz varsa ve yaln─▒zca varsay─▒lan olay─▒n ger├žekle┼čmesini ve sadece bir├žok kez ger├žekle┼čmesini ├Ânlemek istiyorsan─▒z, bunun i├žin fonksiyonun en ├╝st├╝nde kullanmam─▒z gerekir ().

Sebep: -

Kullanman─▒n nedeni e.preventDefault(); , kodumuzda kodda bir ┼čeyler ters gitti─či i├žin, g├Ânderilecek ba─člant─▒ veya formun y├╝r├╝t├╝lmesine izin vermesi veya yapman─▒z gereken herhangi bir i┼člemi y├╝r├╝tmesine veya izin vermesine izin vermesidir. & link veya g├Ânder butonu g├Ânderilecek ve hala etkinli─čin yay─▒lmas─▒na izin verecek.

 <!DOCTYPE html>
<html lang="en" dir="ltr">
   <head>
      <meta charset="utf-8">
      <title></title>
   </head>
   <body>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <a href="https://www.google.com" onclick="doSomethingElse()">Preventsss page from redirect</a>
      <script type="text/javascript">
         function doSomethingElse(){
           console.log("This is Test...");
         }
         $("a").click(function(e){
          e.preventDefault(); 
         });
      </script>
   </body>
</html> 

Yanl─▒┼č d├Ând├╝rmek;

Bu sadece fonksiyonun () ├žal─▒┼čmas─▒n─▒ durdurur.

" return false; " i┼člemin y├╝r├╝t├╝lmesine son verecek.

Sebep: -

Yanl─▒┼č kullanman─▒n nedeni; fonksiyonu kesinlikle kat─▒ modda ├žal─▒┼čt─▒rmak istemiyor olman─▒zd─▒r.

 <!DOCTYPE html>
<html lang="en" dir="ltr">
   <head>
      <meta charset="utf-8">
      <title></title>
   </head>
   <body>
      <a href="#" onclick="returnFalse();">Blah</a>
      <script type="text/javascript">
         function returnFalse(){
         console.log("returns false without location redirection....")
             return false;
             location.href = "http://www.google.com/";
         
         }
      </script>
   </body>
</html> 


1







Tecr├╝belerime g├Âre event.stopPropagation (), en ├žok CSS efektinde veya animasyon ├žal─▒┼čmalar─▒nda kullan─▒l─▒r, ├Ârne─čin hem kart hem de d├╝─čme ├Â─česi i├žin vurgulu efekti varken, d├╝─čmenin ├╝zerine geldi─činizde hem kart hem de buton vurgulu efekti tetiklenir , event.stopPropagation () k├Âp├╝rme eylemlerini durdurmak i├žin kullanabilirsiniz ve event.preventDefault (), taray─▒c─▒ eylemlerinin varsay─▒lan davran─▒┼č─▒n─▒ ├Ânlemek i├žindir. ├ľrne─čin, formunuz var ancak yaln─▒zca g├Ânderme eylemi i├žin click olay─▒n─▒ tan─▒mlad─▒n─▒z, kullan─▒c─▒ formu enter tu┼čuna basarak g├Ânderirse, keypress olay─▒ taraf─▒ndan tetiklenen taray─▒c─▒, buradaki click olay─▒n─▒z─▒ de─čil, event.preventDefault () i┼člevini uygunsuz kullanmamak i├žin kullanmal─▒s─▒n─▒z. davran─▒┼č─▒. Neyin yanl─▒┼č d├Ând├╝─č├╝n├╝ bilmiyorum; ├╝zg├╝n├╝m.Daha fazla a├ž─▒klama i├žin bu ba─člant─▒y─▒ ziyaret edin ve # 33 numaral─▒ sat─▒rla oynay─▒n https://www.codecademy.com/courses/introduction-to-javascript/lessons/requests-i/exercises/xhr-get-request-iv


1







Temel olarak, bu ┼čekilde i┼čleri birle┼čtirirsiniz ├ž├╝nk├╝ jQuery ├žo─čunlukla HTML ├Â─čelerine odaklanan bir ├žer├ževedir, temelde varsay─▒lan─▒ ├Ânl├╝yorsunuz, ancak ayn─▒ zamanda kabar─▒kl─▒─č─▒ artt─▒rmay─▒ da durduruyorsunuz.

Yani basit├že s├Âyleyebiliriz ki, yanl─▒┼č geri d├Ân├╝┼č jQuery e┼čit olur:

return false: e.preventDefault VE e.stopPropagation

Ancak, bunlar─▒n hepsini jQuery veya DOM ile ilgili i┼člevlerde de unutmay─▒n, ├Â─čeyi ├žal─▒┼čt─▒rd─▒─č─▒n─▒zda, temelde, olay─▒n varsay─▒lan davran─▒┼č─▒ ve yay─▒lmas─▒ da dahil olmak ├╝zere her ┼čeyin ate┼členmesini ├Ânler.

Temelde kullanarak ba┼člamadan ├Ânce return false; , ilk olarak ne anlama e.preventDefault(); ve e.stopPropagation(); sen d├╝┼č├╝n├╝yorsan─▒z o zaman o zaman sadece kullanmak, ayn─▒ anda her iki ihtiyac─▒m yok.

Yani temelde bu kod a┼ča─č─▒da:

 $('div').click(function () {
  return false;
});
 

oldu─ču e┼čit bu koda:

 $('div').click(function (event) {
  event.preventDefault();
  event.stopPropagation();
});
 

0



─░lgili yay─▒nlar


Event.stopPropagation ve event.preventDefault aras─▒ndaki fark nedir?

Bir click olay dinleyicisine 'return false' eklemenin etkisi nedir?

event.returnValue kullan─▒mdan kald─▒r─▒ld─▒. L├╝tfen bunun yerine standart event.preventDefault () kullan─▒n

event.preventDefault () i┼člevi IEÔÇÖde ├žal─▒┼čm─▒yor

Event.preventDefault () ├Â─česini kulland─▒ktan sonra olay nas─▒l tetiklenir

Event.preventDefault () (jQuery kullanarak) ├ža─č─▒ran bir dinleyiciyi nas─▒l ├ž├Âzebilirim?

Ondefult etiketinin onclick ├Âzelli─činden kaynaklanan ├Âzel i┼člevden ├ža─čr─▒lacak Access olay─▒

JQuery event.preventDefault () ayarland─▒─č─▒nda, window.open ├╝zerindeki popup engelleyicisini atla

event.preventDefault () vs. return false (jQuery yok)

Event.preventDefault nas─▒l yeniden etkinle┼čtirilebilir?

Etiketle ilgili di─čer sorular [javascript]


Stdout ve stderr'i Bash ile bir dosyaya nas─▒l y├Ânlendirebilir ve ekleyebilirim?

─░stemcinin saat diliminin JavaScriptÔÇÖte dengelenmesi

De─či┼čkenlerin olup olmad─▒─č─▒n─▒ g├Ârmek i├žin JavaScript kontrol├╝

Varl─▒k ├çer├ževesi Sa─člay─▒c─▒ t├╝r├╝ y├╝klenemedi mi?

Web iste─či ba┼č─▒na bir DbContextÔÇŽ neden?

Bash'deki bir dizinin elemanlar─▒n─▒ nas─▒l birle┼čtirebilirim?

Cihaz─▒n IMEI / ESN'sini programsal olarak android olarak nas─▒l edinirim?

XSLT'de bir dizgenin bo┼č veya bo┼č olup olmad─▒─č─▒n─▒ kontrol edin

Eclipse for Maven ba─č─▒ml─▒l─▒─č─▒ aramas─▒ i├žin dizin indirmelerini nas─▒l etkinle┼čtiririm? [├žift]

jQuery t─▒klama olaylar─▒ birden ├žok kez ate┼č ediyor