Kokia „href“ reikšmė turėtų būti naudojama nuorodoms į „JavaScript“, „#“ arba „javascript: void (0)“?

Žemiau pateikiami du ryšio kūrimo būdai, kurių vienintelis tikslas yra paleisti „JavaScript“ kodą. Kas yra geresnė, kalbant apie funkcionalumą, puslapio įkėlimo greitį, tikrinimo tikslus ir tt?

 <a href="#" onclick="myJsFunc();">Run JavaScript Code</a> 

arba

  <a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a> 
3784
25 сент. Nustatykite 2cBGj7vsfp 25 Sep 2008-09-25 20:54 '08 at 8:54 pm 2008-09-25 20:54
@ 54 atsakymai
  • 1
  • 2

Aš naudoju javascript:void(0) .

Trys priežastys. Skatinant naudoti # kūrimo komandoje, neišvengiamai naudojamas tam tikras funkcijų grąžinimo vertės naudojimas, vadinamas taip:

 function doSomething() { //Some code return false; } 

Bet tada jie pamiršo naudoti return doSomething() į onclick ir tiesiog naudokite doSomething() .

Antroji priežastis, kodėl reikia vengti # yra ta, kad galutinė return false; nebus įvykdyta, jei skambinama funkcija. Todėl kūrėjai taip pat turėtų prisiminti, kad tinkamai elgtųsi su bet kokia iškviestos funkcijos klaida.

Trečia priežastis yra ta, kad yra atvejų, kai onclick įvykio nuosavybė yra priskirta dinamiškai. Aš norėčiau, kad galėčiau skambinti funkcijai arba ją dinamiškai priskirti, nereikia koduoti funkcijos, konkrečiai vienos ar kitos lizdų. Todėl mano „ onclick (arba kažkas) HTML žymėjime atrodo taip:

 onclick="someFunc.call(this)" 

Or

 onclick="someFunc.apply(this, arguments)" 

Naudojant javascript:void(0) vengia visų pirmiau minėtų galvos skausmų, ir aš neradau trūkumų pavyzdžių.

Taigi, jei esate vienišas kūrėjas, galite pasirinkti savo pasirinkimus, tačiau jei dirbate komandoje, turite nurodyti:

Naudokite href="#" kad užtikrintumėte, jog onclick visada turi return false; pabaigoje, kad bet kuri skambinama funkcija nesuteikia klaidos ir jei dinamiškai prijungsite funkciją prie „ onclick nuosavybės, įsitikinkite, kad ji taip pat grąžina false , nepateikdama klaidos.

Or

border=0

Naudokite href="javascript:void(0)"

Antra, tai yra daug lengviau bendrauti.

2057
26 сент. Atsakymą pateikė AnthonyWJones 26 sep . 2008-09-26 11:03 '08 at 11:03 2008-09-26 11:03

Nei taip pat.

Jei galite turėti faktinį URL, kuris yra prasmingas naudoti kaip „href“. „Onclick“ neveiks, jei kas nors spustelės jūsų nuorodą, jei norite atidaryti naują skirtuką, arba jei „JavaScript“ yra išjungtas.

Jei tai neįmanoma, turėtumėte bent jau įterpti inkaro žymę į dokumentą naudodami „JavaScript“ ir atitinkamus paspaudimų įvykių tvarkytojus.

border=0

Suprantu, kad tai ne visada įmanoma, bet, mano nuomone, jis turėtų stengtis sukurti bet kokią viešai prieinamą svetainę.

Išmeskite nepastebimus javascript ir progresyvius priedus (abu wikipedia).

1230
25 сент. atsakymą pateikė Aaron Wagner 25 sep. 2008-09-25 21:09 '08 at 9:09 pm 2008-09-25 21:09

Paleiskite <a href="#" onclick="myJsFunc();">Link</a> arba <a href="javascript:void(0)" onclick="myJsFunc();">Link</a> arba bet kas kitas, turintis „ onclick atributą, buvo prieš penkerius metus, nors dabar jis gali būti bloga praktika. Štai kodėl:

  • Tai prisideda prie obsesinio „JavaScript“, kuris pasirodė esąs sunkiai prižiūrimas ir sunkus. Daugiau apie tai skaitykite „ Neįtikėtinas javascript“ .

  • Jūs praleidžiate laiką kurdami neįtikėtinai sudėtingą išsamų kodą, kuris labai mažas (jei yra) naudingas jūsų kodo bazei.

  • Dabar yra geresnių, paprastesnių ir patogesnių ir labiau keičiamų būdų pasiekti norimą rezultatą.

Nepastebimas javascript

Jis tiesiog neturi href atributo! Bet koks geras CSS atstatymas stebės trūkstamą numatytąjį žymeklio stilių, todėl tai nėra problema. Tada pridėkite „JavaScript“ funkcijas naudodami elegantiškus ir nepastebimus pažangius metodus, kurie yra patogesni, nes „JavaScript“ logika lieka „JavaScript“, o ne „žymėjime“, kuri yra būtina kuriant didelio masto „JavaScript“ programas, kurioms reikia, kad jūsų logika būtų suskirstyta į juodieji komponentai ir modeliai. Sužinokite daugiau apie tai didelės apimties „JavaScript“ programų architektūroje.

Paprastas kodo pavyzdys

 a { cursor: pointer; color: blue; } a:hover,a.hover { text-decoration: underline; } 
pavyzdys - žr. Darbo jsfiddle pavyzdį .  Atkreipkite dėmesį į tai, kaip mes naudojame nedviprasmiškus darbo su „JavaScript“ metodus, o nedideliu kodo kiekiu yra komponentas, kurį galima pakartoti puslapyje kelis kartus be šalutinio poveikio ar skirtingų komponentų konfliktų.  Nuostabus! 

Pastabos

  • Jei elemente a sumažinsite atributą href , elementas nebus pasiekiamas naršant tab klavišą. Jei norite, kad šie elementai būtų prieinami naudojant tab klavišą, galite nustatyti atributą „ tabindex arba vietoj to naudoti button . Jūs galite lengvai stilizuoti mygtukų elementus, kad jie atrodytų kaip įprastos nuorodos, kaip nurodyta „ Tracker1“ atsakyme .

  • href atributo „ a atsisakymas „ Internet Explorer 6“ ir „ Internet Explorer 7“ nepriims a:hover stiliaus, todėl pridėjome paprastą „JavaScript“ juostą, kad tai atliktume su „ a.hover . Kas yra visiškai normalu, nes jei neturite „href“ atributo ir nėra kompetentingos degradacijos, tuomet jūsų nuoroda neveiks - ir jums bus rimtesnių problemų.

  • Jei norite, kad jūsų veiksmas vis tiek veiktų su „JavaScript“ išjungtu, naudokite elementą su atributu „ href , kuris siunčiamas į tam tikrą URL adresą, kuris atliks veiksmą rankiniu būdu, o ne per „Ajax“ užklausą arba kažką kitą, kur turi būti kelias. Jei tai padarysite, tuomet norite atlikti event.preventDefault() kai skambinate paspaudę, kad įsitikintumėte, jog spustelėjus mygtuką, jis nesilaiko nuorodos. Ši galimybė vadinama grakštumu.

750
25 февр. baluptono atsakymas, vasario 25 d 2012-02-25 05:08 '12 at 5:08 2012-02-25 05:08

'#' grąžina naudotoją į puslapio viršų, todėl paprastai einu void(0) .

javascript:; taip pat elgiasi kaip javascript:void(0);

286
25 сент. atsakymą pateikė Adam Tuttle Sep 25 2008-09-25 20:55 '08 at 8:55 pm 2008-09-25 20:55

Aš sąžiningai nepasiūlyčiau nei vieno, nei kito. Šiam elgesiui naudoju stilizuotą <button> </button> .

Taigi galite priskirti „onclick“. Taip pat siūlau susieti scenarijų nenaudojant elemento žyma onclick atributo. Vienintelis gautas tekstas yra psuedo teksto efektas senojoje IE, kurios negalima išjungti.


Jei privalote naudoti elementą A, naudokite javascript: void (0); dėl jau minėtų priežasčių.

  • Jis visada bus sulaikytas, jei įvykis nepavyksta įvykio.
  • Nebus klaidingo skambučių ar kitų įvykių pakrovimo pagal maišos pokyčius.
  • „Hash“ žyma gali sukelti netikėtą elgesį, jei paspaudžiamas paspaudimas (antklodės), vengiant jo, jei tai nėra tinkamas elgesys ir norite pakeisti navigacijos istoriją.

PASTABA. 0 galite pakeisti eilute, pvz., javascript: void ('Удалить запись 123') , kuris gali būti papildomas rodiklis, kuris iš tikrųjų parodys paspaudimą.

233
15 дек. Atsakymas atiduotas Tracker1 15 Dec. 2011-12-15 21:41 '11 prie 21:41 2011-12-15 21:41

Pirmasis, idealiu atveju, su tikra nuoroda, jei vartotojas išjungė „JavaScript“. Tiesiog grįžkite į klaidą, kad būtų išvengta paspaudimo įvykio, kai „JavaScript“ vykdomas.

 <a href="#" onclick="myJsFunc(); return false;">Link</a> 

Jei naudojate „Angular2“, šis metodas veikia:

<a [routerLink]="" (click)="passTheSalt()">Click me</a> .

Žr. Čia ngn-wiki.ru.site/questions/23049 / ...

131
25 сент. atsakymas pateikiamas Zach 25 sep. 2008-09-25 20:56 '08 at 8:56 pm 2008-09-25 20:56

Geriausia būtų tai padaryti:

 <a href="javascriptlessDestination.html" onclick="myJSFunc(); return false;">Link text</a> 

Arba, netgi geriau, turite nuorodą į numatytąjį veiksmą HTML sistemoje ir prie elemento „JavaScript“ po „DOM“ pateikimo pridėkite „onclick“ įvykį, taip užtikrindami, kad jei „JavaScript“ nėra / nenaudojamas, jūs neturite nenaudingų tvarkytojų įvykius, kurie užtvindys jūsų kodą ir galimai painioja (arba bent jau trukdo) nuo jūsų faktinio turinio.

92
25 сент. Atsakymą pateikė Steve Paulo 25 sep. 2008-09-25 21:35 '08 at 9:35 pm 2008-09-25 21:35

Neprašykite manęs

Jei jūsų „nuorodos“ vienintelis tikslas yra paleisti kai kuriuos „JavaScript“ kodus, jis nėra laikomas nuoroda; greičiau, dalis teksto su „JavaScript“ funkcija, susijusi su juo Norėčiau naudoti <span> žymą su jame onclick handler žymekliu ir kai kuriais pagrindiniais CSS, kad būtų galima modeliuoti nuorodą. Nuorodos yra skirtos navigacijai, o jei jūsų „JavaScript“ kodas nėra skirtas navigacijai, tai neturėtų būti <a> žyma.

Pavyzdys:

 .jsAction { cursor: pointer; color: #00f; text-decoration: underline; } 
92
25 сент. Atsakymas suteikiamas 25 fidžių . 2008-09-25 21:59 '08 at 9:59 pm 2008-09-25 21:59

Naudojant tik # , kai kurie juokingi judesiai, todėl rekomenduoju naudoti #self jei norite išsaugoti „ JavaScript bla, bla, kai įvesite pastangas.

74
24 сент. atsakymą pateikė Spammer Joe . 2011-09-24 04:55 '11 at 4:55 2011-09-24 04:55

Aš naudoju šiuos veiksmus

 <a href="javascript:;" onclick="myJsFunc();">Link</a> 

vietoj

 <a href="javascript:void(0);" onclick="myJsFunc();">Link</a> 
62
17 апр. atsakymas pateikiamas 17 d. 2009-04-17 09:49 '09 9:49 2009-04-17 09:49

Sutinku su kitur pateiktais pasiūlymais, nurodydamas, kad privalote naudoti įprastą URL, esantį atribute href , ir paskambinkite „JavaScript“ funkcija „onclick“. Trūkumas yra tas, kad po pokalbio jie automatiškai prideda return false .

Šio požiūrio problema yra ta, kad jei funkcija neveikia arba jei yra kokių nors problemų, nuoroda taps nepatraukli. „Onclick“ įvykis visada grįžta į klaidą, todėl įprastas URL nebus vadinamas.

Yra labai paprastas sprendimas. Leiskite funkcijai sugrįžti true jei ji veikia tinkamai. Tada naudokite grąžinimo vertę, kad nustatytumėte, ar paspaudimas turi būti atšauktas, ar ne:

„Javascript“

 function doSomething() { alert( 'you clicked on the link' ); return true; } 

HTML

 <a href="path/to/some/url" onclick="return !doSomething();">link text</a> 

Atminkite, kad neigiu doSomething() funkcijos rezultatą. Jei ji veikia, ji bus true , todėl ji bus atšaukta ( false ), o path/to/some/URL nebus vadinamas. Jei funkcija grąžina false (pvz., Naršyklė nepalaiko šios funkcijos, arba kažkas neveikia), ji atšaukiama, kol path/to/some/URL iškviestas true ir path/to/some/URL .

52
27 сент. atsakymas pateikiamas Fczbkk 27 sep . 2008-09-27 13:58 '08 13:58 pm 2008-09-27 13:58

# geriau nei javascript:anything , bet dar geriau:

HTML:

 <a href="/gracefully/degrading/url/with/same/functionality.ext" class="some-selector">For great justice</a> 

„Javascript“:

 $(function() { $(".some-selector").click(myJsFunc); }); 

Jūs visada turėtumėte siekti elegantiško degradacijos (jei vartotojas neturi įgalintų „JavaScript“ ... ir kai jis yra su specifikacijomis ir biudžetu). Be to, laikoma, kad „JavaScript“ atributai ir protokolas tiesiogiai naudojami HTML formatu.

50
23 нояб. Atsakymą pateikė Justin Johnson 23 lapkritis. 2009-11-23 23:38 '09, 23:38 PM 2009-11-23 23:38

Jei nenorite rašyti nuorodos naudodami „JavaScript“ (kad žinotumėte, kad naršyklėje jis įgalintas), idealiai turėtumėte pateikti teisingą nuorodą žmonėms, peržiūrėjusiems „JavaScript“ išjungtą, ir tada neleisti numatytam nuorodos veiksmui „onclick“ įvykių tvarkytoju. Taigi, funkcijos su įgalinta „JavaScript“ veiks šią funkciją, o tie, kurių „JavaScript“ išjungta, eis į atitinkamą puslapį (arba vietą toje pačioje puslapyje), o ne tik nuorodą ir nieko neįvyks.

38
25 сент. Simon Forrest atsakymas, rugsėjo 25 d 2008-09-25 21:02 '08 ne 21:02 2008-09-25 21:02

Vietoj to, rekomenduojama naudoti elementą <button> , ypač jei valdiklis turėtų pakeisti duomenis. (Kažkas panašaus į POST.)

Tai dar geriau, jei nepastebimai įvedate elementus - progresyvaus tobulinimo tipą. (Žr. Šį komentarą .)

37
16 окт. Atsakymą pateikė phyzome spalio 16 d. 2008-10-16 20:46 '08 at 8:46 pm 2008-10-16 20:46

Tikrai hash ( # ) yra geresnis, nes javascript tai yra pseudo schema:

  • užteršia istoriją
  • sukuria naują variklio kopiją
  • veikia pasauliniu mastu ir nepalaiko įvykių sistemos.

Žinoma, „#“ su „onclick“ tvarkytoju, kuris užkerta kelią numatytam veiksmui, yra daug geriau. Be to, nuoroda, kurios vienintelis tikslas yra paleisti „JavaScript“, nėra „nuoroda“, nebent vartotoją atsiųstumėte į tam tikrą pagrįstą inkarą puslapyje (tik # nusiųskite į viršų), kai kažkas blogai . Jūs galite tiesiog imituoti ryšį su stiliumi ir pamiršti apie „href“ apskritai.

Be to, kalbant apie „cowgod“ pasiūlymą, visų pirma tai yra: ...href="javascript_required.html" onclick="... Tai geras požiūris, tačiau jis nesiskiria nuo" neįgaliųjų JavaScript "ir" onclick fail "scenarijų.

35
07 нояб. atsakymą pateikė „ Free Consulting“ lapkričio 7 d. 2009-11-07 05:26 '09 at 5:26 am 2009-11-07 05:26

Aš paprastai einu

 <a href="javascript:;" onclick="yourFunction()">Link description</a> 

Tai trumpesnis nei „JavaScript“: negalioja (0) ir daro tą patį.

30
13 авг. atsakymas pateikiamas 13 d. 2015-08-13 04:01 '15 , 4:01 am 2015-08-13 04:01

Norėčiau naudoti:

 <a href="#" onclick="myJsFunc();return false;">Link</a> 

Priežastys:

  • Dėl to „ href paprastas, jam reikia paieškos sistemų. Jei naudojate kažką kitą (pvz., Eilutę), tai gali sukelti 404 not found klaidą.
  • Kai pelė virsta ant nuorodos, ji nenurodo, kad tai yra scenarijus.
  • Naudojant return false; , puslapis neperkels arba nepažeis back mygtuko.
27
16 дек. Eric Yin atsakymas gruodžio 16 d 2011-12-16 03:09 '11 at 3:09 2011-12-16 03:09

Aš pasirinksiu naudoti „ javascript:void(0) , nes tai gali neleisti dešiniuoju pelės klavišu atidaryti turinio meniu. Bet javascript:; trumpesnis ir daro tą patį.

25
26 июля '11 в 14:35 2011-07-26 14:35 atsakymą pateikė vartotojo564706 liepos 26 d. 11, 14:35 2011-07-26 14:35

Taigi, kai jūs naudojate kai kuriuos „JavaScript“ dalykus su „ <a /> žyma, ir jei taip pat nustatote href="#" , įvykio pabaigoje galite pridėti grąžinimo klaidą (jei yra susietas įvykis), pavyzdžiui:

 <a href="#" onclick="myJsFunc(); return false;">Run JavaScript Code</a> 

Arba galite pakeisti href atributą naudodami javascript, pavyzdžiui:

 <a href="javascript://" onclick="myJsFunc();">Run JavaScript Code</a> 

arba

 <a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a> 

Tačiau semantiškai, visi pirmiau minėti būdai, kaip tai pasiekti, yra neteisingi (nors ir veikia gerai). Jei bet kuris elementas nėra sukurtas naršyti puslapyje ir turi tam tikrą „JavaScript“ su juo, tai neturėtų būti <a> žyma.

Vietoj to galite tiesiog naudoti <button /> kad atliktumėte tam tikrą veiksmą ar bet kurį kitą elementą, pvz., B, span ar kitą, kas atitinka jūsų poreikius, nes jums leidžiama pridėti įvykių į visus elementus.


Taigi, yra vienas pranašumas naudojant <a href="#"> . Kai gausite a href="#" gausite numatytąjį šio elemento žymeklį. Dėl šios priežasties, manau, galite naudoti CSS šio tipo cursor:pointer; kuri taip pat išsprendžia šią problemą.

Galiausiai, jei susiejate įvykį su pačiu „JavaScript“ kodu, galite įvykdyti event.preventDefault() kad galėtumėte tai pasiekti, jei naudojatės <a> žyma, tačiau jei nenaudojate <a> žyma, naudosite, jums nereikia tai padaryti.

Taigi, jei matote, geriau naudoti tokias medžiagas nenaudoti.

23
13 февр. Atsakymą pateikė Ashish Kumar , vasario 13 d. 2014-02-13 06:34 '14, 6:34 AM 2014-02-13 06:34

Būtų geriau naudoti jQuery,

 $(document).ready(function() { $("a").css("cursor", "pointer"); }); 

ir praleiskite href="#" ir href="javascript:void(0)" .

Atrodys etiketės etiketės pavadinimą

 <a onclick="hello()">Hello</a> 

Pakankamai paprasta!

22
23 окт. Atsakymas pateikiamas naveen 23 okt. 2008-10-23 12:55 '08 at 12:55 2008-10-23 12:55

Nenaudokite nuorodų vien tik „JavaScript“ naudojimui.

Naudojant href = "#", slinkiamas puslapis viršuje; naudojant tuščiąją (0) naršyklėje atsiranda navigacijos problemų.

Vietoj to naudokite kitą nei nuorodą elementą:

 <span onclick="myJsFunc()" class="funcActuator">myJsFunc</span> 

Ir stilius su CSS:

 .funcActuator { cursor: default; } .funcActuator:hover { color: #900; } 
22
26 янв. Garrett atsakymas, sausio 26 d 2016-01-26 22:54 '16 at 22:54 pm 2016-01-26 22:54

Jei naudojate „ AngularJS“ , galite naudoti:

 <a href="">Do some fancy JavaScript</a> 

Tai nieko nedarys.

Be to,

  • Tai nuves jus į puslapio viršų, kaip yra (#)
    • Todėl nereikia aiškiai grąžinti false naudojant „JavaScript“
  • Trumpas
20
26 июля '13 в 1:31 2013-07-26 01:31 atsakymas yra duotas, liepos 26 d. 13 d. 1:31 2013-07-26 01:31

Paprastai visada turėtumėte turėti grąžinimo nuorodą, kad įsitikintumėte, jog klientai su „JavaScript“ išjungta vis dar turi tam tikrų funkcijų. Ši sąvoka vadinama nepatraukliu javascript.

Pavyzdys ... Tarkime, kad turite šią paieškos nuorodą:

 <a href="search.php" id="searchLink">Search</a> 

Visada galite atlikti šiuos veiksmus:

 var link = document.getElementById('searchLink'); link.onclick = function() { try { // Do Stuff Here } finally { return false; } }; 

Taigi, žmonės su „JavaScript“ išjungtais yra susieti su „ search.php , o jūsų žiūrovai su „JavaScript“ žiūri į papildomas funkcijas.

19
16 окт. Atsakymą pateikė Andrew Moore spalio 16 d. 2008-10-16 21:00 '08 21:00 val. 2008-10-16 21:00

Jei nėra href , gali nebūti priežasčių naudoti inkaro žymę.

Jūs galite pridėti įvykius (paspaudimus, užveskite ir pan.) Beveik kiekviename elemente, tad kodėl gi ne naudoti span ar div ?

Ir vartotojams su „JavaScript“: jei nėra atsarginės kopijos (pvz., „ href alternatyvos), jie bent jau negali matyti ir bendrauti su šiuo elementu, nepaisant to, ar jis yra <a> arba <span> .

18
29 июня '13 в 17:43 2013-06-29 17:43 atsakymas pateikiamas achairapart birželio 29 d. 13:43 2013-06-29 17:43

Kai turiu keletą dirbtinių nuorodų, norėčiau jiems suteikti „ne-nuorodą“ klasę.

Tada jQuery pridėjau šį kodą:

 $(function(){ $('.no-link').click(function(e){ e.preventDefault(); }); }); 

Ir HTML nuoroda yra teisinga

 <a href="/" class="no-link">Faux-Link</a> 

Nenoriu naudoti „Hash“ žymių, jei jie nėra naudojami užrišimui, ir aš tai darau tik tada, kai turiu daugiau nei dvi dirbtines nuorodas, kitaip aš einu su javascript: void (0).

 <a href="javascript:void(0)" class="no-link">Faux-Link</a> 

Paprastai norėčiau tiesiog vengti naudoti nuorodą apskritai ir tiesiog vilkite kažką tarp jų ir naudoti jį kaip būdą dirbti su kai kuriais „JavaScript“ kodais, pvz., Iškylančiajame >

16
25 июня '12 в 22:34 2012-06-25 22:34 birželio 25 d. 10 val

Manau, kad jūs atstovaujate klaidingą dichotomiją. Tai nėra vienintelės dvi galimybės.

Sutinku su p. D4V360, kuris pasiūlė, kad nors jūs naudojate inkarų žymą, čia jūs tikrai neturite inkarų. Viskas, ką turite, yra speciali dokumento dalis, kuri turėtų elgtis šiek tiek kitaip. <span> daug svarbesnė.

16
26 сент. Atsakymas duotas Clever Human 26 sep. 2008-09-26 00:20 '08 - 0:20 2008-09-26 00:20

Priklausomai nuo to, ką norite atlikti, galite pamiršti „onclick“ ir tiesiog naudoti „href“:

 <a href="javascript:myJsFunc()">Link Text</a> 

Ji apeina būtinybę grąžinti klaidingą. Man nepatinka # parametras, nes, kaip jau minėta, jis bus puslapio viršuje. Jei turite kažkur kitur, kad galėtumėte siųsti vartotoją, jei jie neturi „JavaScript“ (tai yra retas, kai dirbau, bet labai gera idėja), tada Steve pasiūlė, kad šis metodas puikiai veikia.

 <a href="javascriptlessDestination.html" onclick="myJSFunc(); return false;">Link text</a> 

Galiausiai, galite naudoti „ javascript:void(0) jei nenorite, kad kas nors vyktų ir jei nenorite skambinti „JavaScript“ funkcijai. Jis veikia gerai, jei turite vaizdą, su kuriuo norite įvykdyti „mouseover“ įvykį, bet vartotojas neturi nieko daryti.

16
26 сент. atsakymą pateikė Will Read 26 sept. 2008-09-26 00:02 '08 ne 0:02 2008-09-26 00:02

Bandžiau „Google Chrome“ su kūrėjo įrankiais ir id="#" užtruko 0,32 sekundės. Nors javascript:void(0) metodas užtruko tik 0,18 sekundės. Taigi „Google Chrome“ javascript:void(0) veikia geriau ir greičiau.

16
29 окт. atsakymas, kurį pateikė user6460587 29 spalis 2016-10-29 22:10 '16 at 10:10 pm 2016-10-29 22:10

Aš iš esmės perrašau šį praktinį straipsnį, naudodamasis progresyviu tobulinimu . Короткий ответ заключается в том, что вы никогда не используете javascript:void(0); или # , если ваш пользовательский интерфейс уже не определил, что JavaScript включен, и в этом случае вы должны использовать javascript:void(0); . Кроме того, не используйте span в качестве ссылок, поскольку для начала это семантически ложно.

Использование SEO дружественных URL-адресов в вашем приложении, таких как /Home/Action/Parameters, является хорошей практикой. Если у вас есть ссылка на страницу, которая работает без JavaScript, вы можете улучшить опыт после этого. Используйте реальную ссылку на рабочую страницу, а затем добавьте событие onlick, чтобы улучшить презентацию.

Čia yra pavyzdys. Главная /ChangePicture - это рабочая ссылка на форму на странице в комплекте с пользовательским интерфейсом и стандартными кнопками отправки HTML, но она выглядит более удобной в виде модального диалога с кнопками jQueryUI. В любом случае работает, в зависимости от браузера, который удовлетворяет первой мобильной разработке.

 <p><a href="Home/ChangePicture" onclick="return ChangePicture_onClick();" title="Change Picture">Change Picture</a></p> <script type="text/javascript"> function ChangePicture_onClick() { $.get('Home/ChangePicture', function (htmlResult) { $("#ModalViewDiv").remove(); //Prevent duplicate dialogs $("#modalContainer").append(htmlResult); $("#ModalViewDiv").dialog({ width: 400, modal: true, buttons: { "Upload": function () { if(!ValidateUpload()) return false; $("#ModalViewDiv").find("form").submit(); }, Cancel: function () { $(this).dialog("close"); } }, close: function () { } }); } ); return false; } </script> 
13
ответ дан Josh Simerman 15 дек. '11 в 1:09 2011-12-15 01:09