„JavaScript“ lyginamas event.preventDefault() ir „false“.

JavaScript

„JavaScript“ įvykių tvarkymo supratimas

Tvarkant įvykius „JavaScript“, ypač naudojant „jQuery“, kūrėjams dažnai reikia neleisti atlikti numatytojo elemento veiksmo arba sustabdyti tolesnių įvykių tvarkyklių vykdymą. Du įprasti būdai tai pasiekti yra event.preventDefault() ir return false. Norint parašyti efektyvų ir be klaidų kodą, labai svarbu suprasti šių metodų skirtumus.

Šiame straipsnyje nagrinėjami event.preventDefault() ir return false niuansai, pabrėžiamas jų naudojimas, pranašumai ir galimi trūkumai. Išnagrinėsime pavyzdžius, kad parodytume jų elgesį, ir aptarsime geriausią praktiką, kaip pasirinkti vieną metodą, o ne kitą, esant įvairiems scenarijams.

komandą apibūdinimas
e.preventDefault() Sustabdo numatytąjį elemento veiksmą.
return false Sustabdo numatytąjį veiksmą ir neleidžia įvykiui plisti.
$(element).click(function(e){...}) Susieja paspaudimo įvykių tvarkyklę su pasirinktais elementais su įvykio parametru.
$(element).submit(function(e){...}) Susieja pateikimo įvykių tvarkyklę su pasirinktais formos elementais su įvykio parametru.
alert('message') Rodo įspėjimo dialogo langą su nurodytu pranešimu.
$('#selector') Naudoja „jQuery“, kad pasirinktų elementus pagal jų ID.

Įvykių tvarkymas JavaScript paaiškinta

Pateikti scenarijai parodo, kaip tvarkyti įvykius JavaScript naudojant du metodus: ir . Pirmasis scenarijus susieja paspaudimo įvykį su prierašo žyma (). Spustelėjus inkaro žymą, event.preventDefault() metodas sustabdo numatytąjį naršyklės veiksmą, pvz., naršymą į naują puslapį. Šis metodas yra naudingas, kai norite vykdyti pasirinktinį kodą, o ne numatytąjį veiksmą, pavyzdžiui, tvarkyti formų pateikimus per AJAX neatnaujinant puslapio.

Antrasis scenarijus naudoja įvykių tvarkyklėje, kuri ne tik neleidžia atlikti numatytojo veiksmo, bet ir sustabdo įvykio burbuliavimą DOM medyje. Tai reiškia, kad nebus vykdomos jokios kitos to paties įvykio įvykių tvarkyklės. Šis metodas yra paprastesnis ir dažnai naudojamas scenarijuose, kai norite užtikrinti, kad tolesnis įvykių apdorojimas nevyktų. Pavyzdžiui, formos pateikimo scenarijuje grąžinus klaidingą formą nebūtų galima pateikti tradiciškai ir būtų galima tinkinti patvirtinimą arba pateikimą naudojant „JavaScript“.

Užkertamas kelias numatytajam veiksmui naudojant event.preventDefault()

„JavaScript“ su „jQuery“ įvykiams tvarkyti

$('a').click(function(e) {
    // Custom handling here
    e.preventDefault();
    // Additional code if needed
});
// Example of a form submission prevention
$('#myForm').submit(function(e) {
    e.preventDefault();
    // Handle form submission via AJAX or other methods
});
// Example of preventing a button's default action
$('#myButton').click(function(e) {
    e.preventDefault();
    alert('Button clicked, but default action prevented');
});

Įvykio plitimo stabdymas grąžinant klaidingą

„JavaScript“ su „jQuery“ įvykiams tvarkyti

$('a').click(function() {
    // Custom handling here
    return false;
    // Additional code will not be executed
});
// Example of a form submission prevention
$('#myForm').submit(function() {
    // Handle form submission via AJAX or other methods
    return false;
});
// Example of preventing a button's default action
$('#myButton').click(function() {
    alert('Button clicked, but default action prevented');
    return false;
});

Pasinerkite į įvykių valdymo metodus

Nors abu ir yra naudojami siekiant užkirsti kelią numatytiems veiksmams „JavaScript“, svarbu suprasti esminius jų skirtumus ir kaip jie veikia įvykių plitimą. The metodas yra specialiai sukurtas užkirsti kelią numatytajam veiksmui, kurį suaktyvina įvykis, pvz., formos pateikimas arba nuorodos naršymas. Tačiau tai netrukdo įvykiui pakelti DOM hierarchiją. Tai reiškia, kad kitos įvykių tvarkyklės, prijungtos prie pirminių elementų, vis tiek gali veikti.

Kita vertus, naudojant įvykių tvarkyklėje ne tik neleidžia atlikti numatytojo veiksmo, bet ir sustabdo įvykio plitimą toliau DOM medyje. Dėl šios dvigubos funkcijos tai patogus trumpinys norint pasiekti abu efektus vienu metu. Tačiau verta paminėti, kad ne visada gali būti geriausias pasirinkimas, ypač sudėtingose ​​programose, kur reikalinga tiksli įvykių plitimo kontrolė. Kodo konteksto ir reikalavimų supratimas padės pasirinkti tinkamiausią metodą.

  1. Ką daro daryti?
  2. Tai neleidžia atlikti numatytojo veiksmo, susieto su įvykiu, pvz., sekti nuorodą arba pateikti formą.
  3. Kaip skiriasi nuo ?
  4. užkirsti kelią numatytajam veiksmui ir sustabdyti įvykio plitimą tik neleidžia atlikti numatytojo veiksmo.
  5. Gali sustabdyti įvykių platinimą?
  6. Ne, tai tik sustabdo numatytąjį veiksmą; Tau reikia sustabdyti dauginimąsi.
  7. Kada turėčiau naudoti ?
  8. Naudokite jį, kai reikia užkirsti kelią numatytajam elgesiui, bet leisti veikti kitoms įvykių tvarkytojams.
  9. Is jQuery specifinis metodas?
  10. Nors dažniausiai naudojamas „jQuery“, jis taip pat veikia paprastu „JavaScript“, kad sustabdytų platinimą ir užkirstų kelią numatytiems veiksmams.
  11. Ar paveikti našumą?
  12. Jis gali būti šiek tiek mažiau efektyvus sudėtingų įvykių scenarijuose, palyginti su tiesioginiu naudojimu ir .
  13. Kas atsitiks, jei naudosiu abu ir ?
  14. Abiejų naudojimas yra nereikalingas; pasirinkite vieną pagal tai, ar reikia sustabdyti dauginimą, ar ne.
  15. Gali naudoti bet kurioje įvykių tvarkyklėje?
  16. Taip, jį galima naudoti bet kurioje įvykių tvarkyklėje, kad būtų išvengta numatytųjų veiksmų ir sustabdytas įvykių plitimas.
  17. Ar yra moderni alternatyva ?
  18. Šiuolaikinis JavaScript dažnai nori naudoti ir dėl aiškumo ir kontrolės.

Pasirinkimas tarp ir priklauso nuo jūsų konkrečių poreikių. idealiai tinka norint užkirsti kelią numatytiems veiksmams, tuo pačiu leidžiant įvykiui plisti. Priešingai, return false yra glaustas būdas sustabdyti veiksmus ir sklaidą. Suprasdami jų naudojimo atvejus ir pasekmes, galėsite parašyti efektyvesnį ir prižiūrimesnį „JavaScript“ kodą.