JavaScript ba─člant─▒lar─▒, ÔÇť#ÔÇŁ veya ÔÇťjavascript: void (0)ÔÇŁ i├žin hangi ÔÇťhrefÔÇŁ de─čerini kullanmal─▒y─▒m?


Al─▒nan cevaba git


A┼ča─č─▒dakiler, yaln─▒zca JavaScript kodunu ├žal─▒┼čt─▒rma amac─▒na sahip olan bir ba─člant─▒ olu┼čturman─▒n iki y├Ântemidir. ─░┼člevsellik, sayfa y├╝kleme h─▒z─▒, do─črulama ama├žlar─▒ vb. A├ž─▒s─▒ndan hangisi daha iyidir?

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

veya

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


3958









Cevap say─▒s─▒n─▒ say: 30






Kulland─▒─č─▒m javascript:void(0) .

├ť├ž nedeni. # Geli┼čtiricilerden olu┼čan bir ekip aras─▒nda kullan─▒m─▒n te┼čvik edilmesi ka├ž─▒n─▒lmaz olarak, buna benzer fonksiyonun geri d├Ân├╝┼č de─čerinin kullan─▒lmas─▒na yol a├žmaktad─▒r:

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

Ama return doSomething() onclick'te kullanmay─▒ ve sadece kullanmay─▒ unutuyorlar doSomething() .

Ka├ž─▒nmak i├žin ikinci bir sebebi # nihai olmas─▒d─▒r return false; denilen i┼člev bir hata atarsa ├žal─▒┼čt─▒rmaz. Bu nedenle, geli┼čtiricilerin ├ža─čr─▒lan i┼člevdeki herhangi bir hatay─▒ uygun ┼čekilde ele almay─▒ da hat─▒rlamalar─▒ gerekir.

├ť├ž├╝nc├╝ bir neden ise, onclick olay ├Âzelli─činin dinamik olarak atand─▒─č─▒ durumlar olmas─▒d─▒r. Bir i┼člevi ├ža─č─▒rabilir veya i┼člevi bir ek y├Ântemi veya ba┼čka bir y├Ântem i├žin ├Âzel olarak kodlamak zorunda kalmadan dinamik olarak atamay─▒ tercih ederim. Dolay─▒s─▒yla onclick HTML i┼čaretlemesindeki benim (veya herhangi bir ┼čeydeki) ┼čuna benziyor:

 onclick="someFunc.call(this)"
 

VEYA

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

Kullanmak javascript:void(0) yukar─▒daki t├╝m ba┼č a─čr─▒lar─▒ndan ka├ž─▒n─▒r ve olumsuz bir ├Ârnek bulamad─▒m.

Yani e─čer yaln─▒z bir geli┼čtiriciyseniz, kendi se├žiminizi a├ž─▒k├ža yapabilirsiniz, ancak bir tak─▒m olarak ├žal─▒┼č─▒yorsan─▒z, her ikisini de yapman─▒z gerekir:

Kullan─▒n href="#" , onclick her zaman return false; en sonunda, herhangi bir ├ža─čr─▒lan i┼člevin hata atmad─▒─č─▒ndan ve onclick ├Âzelli─če dinamik bir i┼člev eklerseniz , d├Ând├╝rd├╝─č├╝n├╝z bir hata atmamaya dikkat edin false .

VEYA

kullan─▒m href="javascript:void(0)"

─░kincisi ileti┼čim kurmak i├žin a├ž─▒k├ža ├žok daha kolayd─▒r.


2122







Ne.

HREF olarak kullanmak mant─▒kl─▒ bir URL olabilir. Birisi, yeni bir sekme a├žmak i├žin ba─člant─▒n─▒z─▒ orta t─▒klarsa veya JavaScriptÔÇÖi devre d─▒┼č─▒ b─▒rakt─▒ysa, t─▒klama ba┼člamaz.

Bu m├╝mk├╝n de─čilse, en az─▒ndan ba─člant─▒ etiketini belgeye JavaScript ve uygun t─▒klama olay i┼čleyicileri ile enjekte etmeniz gerekir.

Bunun her zaman m├╝mk├╝n olmad─▒─č─▒n─▒n fark─▒nday─▒m, ancak bence halka a├ž─▒k bir web sitesi geli┼čtirmek i├žin ├žaba g├Âsterilmesi gerekiyor.

G├Âze batmayan JavaScript ve Progressive geli┼čtirme (her ikisine de Wikipedia) g├Âz at─▒n .


1284







Bir nitelik i├žeren ba┼čka bir ┼čey yapmak <a href="#" onclick="myJsFunc();">Link</a> veya yapmak - be┼č y─▒l ├Ânce geri d├Ând├╝, ancak ┼čimdi k├Ât├╝ bir uygulama olabilir. ─░┼čte nedeni: <a href="javascript:void(0)" onclick="myJsFunc();">Link</a> onclick

  1. Korunmas─▒ zor ve ├Âl├žeklendirilmesi zor olan rahats─▒z edici JavaScript uygulamas─▒n─▒ desteklemektedir. Bu konuda daha fazla Unobtrusive JavaScript .

  2. Vaktinizi inan─▒lmaz derecede a┼č─▒r─▒ ayr─▒nt─▒l─▒ kod yazmak i├žin harc─▒yorsunuz - ki bu kod kodunuz i├žin ├žok az (varsa) yarar─▒ yoktur.

  3. ─░stenilen sonucu elde etmenin daha iyi, daha kolay ve daha bak─▒ml─▒ ve ├Âl├žeklenebilir yollar─▒ var.

G├Âze batmayan JavaScript yolu

Sadece hi├ž bir href ├Âznitelik yok ! Herhangi bir iyi CSS s─▒f─▒rlamas─▒, eksik olan varsay─▒lan imle├ž stiline bakar, bu da sorun olmaz. Ard─▒ndan JavaScript i┼člevselli─činizi zarif ve g├Âze ├žarpmayan en iyi uygulamalar─▒ kullanarak ekleyin - bu, JavaScript mant─▒─č─▒n─▒z i┼čaretlemeniz yerine JavaScript'te kald─▒─č─▒ndan daha kolay olan - mant─▒─č─▒n─▒z─▒n b├Âl├╝nmesini gerektiren b├╝y├╝k ├Âl├žekli JavaScript uygulamalar─▒ geli┼čtirmeye ba┼člad─▒─č─▒n─▒zda ├žok ├Ânemlidir. kara kutu bile┼čenleri ve ┼čablonlar─▒. Daha fazla bilgi i├žin B├╝y├╝k ├ľl├žekli JavaScript Uygulama Mimarisi

Basit kod ├Ârne─či

 // Cancel click event
$('.cancel-action').click(function(){
    alert('Cancel action occurs!');
});

// Hover shim for Internet Explorer 6 and Internet Explorer 7.
$(document.body).on('hover','a',function(){
    $(this).toggleClass('hover');
}); 
 a { cursor: pointer; color: blue; }
a:hover,a.hover { text-decoration: underline; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="cancel-action">Cancel this action</a> 

Bir kara kutu Backbone.js ├Ârne─či

├ľl├žeklenebilir, kara kutu, Backbone.js bile┼čeni ├Ârne─či i├žin - buradaki ├žal─▒┼čma jsfiddle ├Ârne─čine bak─▒n . G├Âze ├žarpmayan JavaScript uygulamalar─▒n─▒ nas─▒l kulland─▒─č─▒m─▒za dikkat edin ve ├žok az miktarda kodda, farkl─▒ bile┼čen ├Ârnekleri aras─▒nda yan etkiler veya ├žat─▒┼čmalar olmadan sayfa boyunca bir├žok kez tekrarlanabilen bir bile┼čen var. ┼×a┼č─▒rt─▒c─▒!

notlar

  • Eleman href ├╝zerindeki ├Âzniteli─či atlamak, e-postalara navigasyon a kullan─▒larak eri┼čilememesine neden olur tab . Bu ├Â─čelerin tab anahtar yoluyla eri┼čilebilir olmas─▒n─▒ istiyorsan─▒z, tabindex niteli─či ayarlayabilir veya button bunun yerine ├Â─čeleri kullanabilirsiniz . Tracker1'in yan─▒t─▒nda belirtildi─či gibi, d├╝─čme ├Â─čelerini normal ba─člant─▒lar gibi g├Âr├╝necek ┼čekilde kolayca bi├žimlendirebilirsiniz .

  • ├ľ─če href ├╝zerindeki ├Âzniteli─či atlamak, Internet Explorer 6 ve Internet Explorer 7'nin ┼čekillendirmeyi ├╝stlenememesine neden olur; bu nedenle bunun yerine bunu ger├žekle┼čtirmek i├žin basit bir JavaScript shim ekledik . Bu, tamam─▒yla sorun de─čil, sanki bir href ├Âzniteli─činiz yok ve zarif bir bozulma yokmu┼č gibi, o zaman ba─člant─▒n─▒z yine de i┼če yaramaz - ve endi┼čelenmeniz gereken daha b├╝y├╝k sorunlar─▒n─▒z olacakt─▒r. a http://en.wikipedia.org/wiki/Internet_Explorer_6http://en.wikipedia.org/wiki/Internet_Explorer_7 a:hover a.hover

  • ─░┼čleminizin hala JavaScript devre d─▒┼č─▒ b─▒rak─▒lm─▒┼č ┼čekilde ├žal─▒┼čmas─▒n─▒ istiyorsan─▒z, o zaman Ajax iste─či yerine i┼člemi yapmak i├žin el ile ger├žekle┼čtirecek baz─▒ URLÔÇÖlere giden a bir href ├Âzellik veya bir i┼člem yap─▒lmas─▒ gerekir. Bunu yap─▒yorsan─▒z event.preventDefault() , d├╝─čmesine t─▒kland─▒─č─▒nda ba─člant─▒y─▒ takip etmedi─činden emin olmak i├žin t─▒klama araman─▒z─▒ yapt─▒─č─▒n─▒zdan emin olmak istersiniz . Bu se├ženek zarif bozulma olarak adland─▒r─▒l─▒r.


764







'#' kullan─▒c─▒y─▒ sayfan─▒n ba┼č─▒na geri g├Ât├╝recek, bu y├╝zden genellikle devam ediyorum void(0) .

javascript:; ayr─▒ca gibi davran─▒r javascript:void(0);


312







Ben de d├╝r├╝st├že ├Âneririm. <button></button> Bu davran─▒┼č i├žin stilize kullan─▒rd─▒m .

 button.link {
  display: inline-block;
  position: relative;
  background-color: transparent;
  cursor: pointer;
  border: 0;
  padding: 0;
  color: #00f;
  text-decoration: underline;
  font: inherit;
} 
 <p>A button that looks like a <button type="button" class="link">link</button>.</p> 

Bu ┼čekilde onclick'inizi atayabilirsiniz. Ayr─▒ca onclick , element etiketindeki ├Âzniteli─či kullanmamak yerine, komut dosyas─▒ yoluyla ba─članma ├Âneririz . Sadece getcha, engellenemeyen eski IE'lerde psuedo 3d metin efektidir.


E─čer varsa MUTLAKA bir A eleman─▒ kullanmak, kullanmak javascript:void(0); ├Ânce bahsedilen nedenlerle.

  • Onclick etkinli─činizin ba┼čar─▒s─▒z olmas─▒ durumunda daima araya girecektir.
  • Hatal─▒ y├╝kleme ├ža─čr─▒lar─▒ ger├žekle┼čmeyecek veya karma de─či┼čikli─čine dayal─▒ di─čer olaylar─▒ tetiklemeyecek
  • Karma etiketi, t─▒klama d├╝┼čerse (onclick atar), uygun bir d├╝┼čme davran─▒┼č─▒ de─čilse ve gezinti ge├žmi┼čini de─či┼čtirmek istemedi─činizden ka├ž─▒n─▒n, beklenmeyen davran─▒┼člara neden olabilir.

NOT: T─▒klaman─▒n ger├žekte ne yapaca─č─▒n─▒ g├Âsteren ekstra bir g├Âsterge i┼člevi g├Ârebilecek 0 bir dize ile de─či┼čtirebilirsiniz javascript:void('Delete record 123') .


260







─░lki, ideal olarak kullan─▒c─▒n─▒n JavaScript'i devre d─▒┼č─▒ b─▒rakmas─▒ durumunda izlenecek ger├žek bir ba─člant─▒ ile. JavaScript ├žal─▒┼čt─▒r─▒l─▒rsa, click olay─▒n─▒n patlamas─▒n─▒ ├Ânlemek i├žin false d├Ând├╝rd├╝─č├╝n├╝zden emin olun.

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

Angular2 kullan─▒yorsan─▒z, bu ┼čekilde ├žal─▒┼č─▒r:

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

Buraya bak─▒n https://stackoverflow.com/a/45465728/2803344


139







Bana sorarsan;

E─čer "link" iniz baz─▒ JavaScript kodlar─▒n─▒ ├žal─▒┼čt─▒rma amac─▒na sahipse, link olarak nitelenmez; bunun yerine JavaScript i┼člevli bir metin par├žas─▒. Ben kullanmay─▒ ├Âneriyoruz <span> bir ile etiketi onclick handler buna ve bir ba─člant─▒y─▒ taklit i├žin baz─▒ temel CSS ba─čl─▒. Navigasyon i├žin ba─člant─▒lar yap─▒l─▒r ve JavaScript kodunuz navigasyon i├žin de─čilse bir <a> etiket olmamal─▒d─▒r .

├ľrnek:

 function callFunction() { console.log("function called"); } 
 .jsAction {
    cursor: pointer;
    color: #00f;
    text-decoration: underline;
} 
 <p>I want to call a JavaScript function <span class="jsAction" onclick="callFunction();">here</span>.</p> 


102







─░deal olarak bunu yapars─▒n─▒z:

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

Veya daha da iyisi, HTMLÔÇÖde varsay─▒lan eylem ba─člant─▒s─▒na sahip olacakt─▒n─▒z ve onclick olay─▒n─▒ DOM olu┼čturulduktan sonra JavaScript arac─▒l─▒─č─▒yla g├Âze ├žarpmayan bir ┼čekilde JavaScript arac─▒l─▒─č─▒yla ekleyeceksiniz, b├Âylece JavaScript'in bulunmamas─▒ / kullan─▒lmamas─▒ i├žin ─░┼če yaramaz olay i┼čleyicileri, kodunuzu kar─▒┼čt─▒rmaya ve potansiyel olarak as─▒l i├žeri─činizi rahats─▒z etmemeye (veya en az─▒ndan dikkatini da─č─▒tmaya) dikkat edin.


96







Kullanmak sadece # baz─▒ komik hareketler yapar, bu y├╝zden #self yazma ├žabalar─▒ndan tasarruf etmek istiyorsan─▒z kullanman─▒z─▒ ├Âneririm JavaScript bla, bla, .


76







A┼ča─č─▒dakileri kullan─▒yorum

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

yerine

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

67







href ├ľznitelikte normal URL kullanman─▒z gerekti─čini belirten herhangi bir yerdeki ├Ânerileri kabul ediyorum , ard─▒ndan onclick'te JavaScript i┼člevini ├ža─č─▒rmal─▒y─▒m. Kusur ┼ču ki return false , aramadan sonra otomatik olarak eklemeliler .

Bu yakla┼č─▒mla ilgili sorun, e─čer i┼člev ├žal─▒┼čmazsa veya herhangi bir sorun olursa, ba─člant─▒n─▒n anla┼č─▒lmaz hale gelmesidir. Onclick olay─▒ her zaman geri d├Âner false , bu nedenle normal URL ├ža─čr─▒lmaz.

├çok basit bir ├ž├Âz├╝m var. D├╝zg├╝n ├žal─▒┼č─▒yorsa fonksiyonun geri d├Ânmesine izin verin true . Ard─▒ndan, t─▒klaman─▒n iptal edilip edilmeyece─čini belirlemek i├žin d├Ând├╝r├╝len de─čeri kullan─▒n:

JavaScript

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

HTML

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

doSomething() Fonksiyonun sonucunu ihmal etti─čime dikkat edin . ├çal─▒┼č─▒rsa, geri d├Âner true , bu y├╝zden ( false ) negatiflenir ve ( ) path/to/some/URL ├ža─čr─▒l─▒r. ─░┼člev geri d├Ânecekse false (├Ârne─čin, taray─▒c─▒ i┼člev i├žinde kullan─▒lan bir ┼čeyi desteklemiyorsa veya ba┼čka bir ┼čey ters giderse), bu dikkate al─▒nmaz true ve path/to/some/URL ├ža─čr─▒l─▒r.


53







# daha iyidir javascript:anything , ancak a┼ča─č─▒dakiler daha da iyidir:

HTML:

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

JavaScript:

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

Her zaman zarif bir bozulma i├žin ├žaba g├Âstermelisiniz (kullan─▒c─▒n─▒n JavaScriptÔÇÖi etkinle┼čtirmemi┼č olmas─▒ ... ve teknik ├Âzelliklere ve b├╝t├žeye uygun olmas─▒ durumunda). Ayr─▒ca, JavaScript niteliklerini ve protokol├╝n├╝ do─črudan HTML olarak kullanmak k├Ât├╝ bir form olarak kabul edilir.


50







JavaScript'i kullanarak ba─člant─▒y─▒ yazmad─▒─č─▒n─▒z s├╝rece (b├Âylece taray─▒c─▒da etkin oldu─čunu biliyorsunuzdur), JavaScript devre d─▒┼č─▒ b─▒rak─▒lm─▒┼č ki┼čiler i├žin ideal bir ba─člant─▒ sa─člaman─▒z ve ard─▒ndan ba─člant─▒n─▒z─▒n varsay─▒lan hareketini engellemeniz gerekir. olay i┼čleyicisi. Bu ┼čekilde, JavaScript etkin olanlar i┼člevi ├žal─▒┼čt─▒racak ve JavaScript devre d─▒┼č─▒ olanlar sadece ba─člant─▒ya t─▒klamak ve hi├žbir ┼čey olmamak yerine uygun bir sayfaya (veya ayn─▒ sayfadaki konuma) atlayacakt─▒r.


39







Cevap SO'nun liderli─čini ve Monica'ya davran─▒┼člar─▒n─▒ protesto etmek i├žin kald─▒r─▒ld─▒.


39







Kesinlikle hash ( # ) daha iyi ├ž├╝nk├╝ JavaScript'te bir pseudoscheme:

  1. ge├žmi┼či kirletiyor
  2. motorun yeni kopyas─▒n─▒ ba┼člatt─▒
  3. K├╝resel kapsamda ├žal─▒┼č─▒r ve etkinlik sistemine sayg─▒ duymaz.

Tabii ki "#" varsay─▒lan eylemi engelleyen bir i┼čleyiciyle i┼čleyiciden [├žok] daha iyidir. ├ťstelik, yaln─▒zca JavaScript'i ├žal─▒┼čt─▒rma amac─▒ olan bir ba─člant─▒, kullan─▒c─▒y─▒ bir ┼čey ters gitti─činde sayfadaki baz─▒ mant─▒kl─▒ ba─člant─▒lara (sadece # ├╝ste g├Ânderir) g├Ândermezseniz ger├žekten "ba─člant─▒" de─čildir. Sadece stil sayfas─▒yla ba─člant─▒ g├Âr├╝n├╝m ve hissini taklit edebilir ve href hakk─▒nda unutabilirsiniz.

Ek olarak, cowgod'un ├Ânerisi ile ilgili olarak, ├Âzellikle bu: ...href="javascript_required.html" onclick="... Bu iyi bir yakla┼č─▒m, ancak "JavaScript devre d─▒┼č─▒" ile "onclick ba┼čar─▒s─▒z" senaryolar─▒ aras─▒nda ayr─▒m yapm─▒yor.


36







Ben genellikle giderim

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

Javascript'ten daha k─▒sa: void (0) ve ayn─▒s─▒n─▒ yap─▒yor.


30







Kullanmak istiyorum:

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

Nedenleri:

  1. Bu href , arama motorlar─▒n─▒n ihtiya├ž duydu─ču basitli─či sa─člar. Ba┼čka bir ┼čey kullan─▒rsan─▒z (├Ârne─čin bir dize), bu bir 404 not found hataya neden olabilir .
  2. Fare ba─člant─▒n─▒n ├╝zerine geldi─činde, bunun bir komut dosyas─▒ oldu─čunu g├Âstermez.
  3. Kullan─▒ld─▒─č─▒nda return false; , sayfa en ├╝ste atlamaz veya back d├╝─čmeyi k─▒lamaz.

27







Kullanmay─▒ se├žiyorum javascript:void(0) , ├ž├╝nk├╝ bunu kullanmak i├žerik men├╝s├╝n├╝ a├žmak i├žin sa─č t─▒klamay─▒ engelleyebilir. Ancak javascript:; daha k─▒sa ve ayn─▒ ┼čeyi yap─▒yor.


25







Bu nedenle, bir <a /> etiketle baz─▒ JavaScript ┼čeyleri yaparken ve href="#" ayn─▒ zamanda koyarsan─▒z , olay─▒n sonuna (sat─▒r i├ži olay ba─članmas─▒ durumunda) gibi false return ekleyebilirsiniz :

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

Veya href niteli─čini JavaScript ile de─či┼čtirebilirsiniz :

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

veya

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

Fakat anlamsal olarak, bunu ba┼čarman─▒n yukar─▒daki t├╝m yollar─▒ yanl─▒┼čt─▒r (yine de iyi ├žal─▒┼č─▒r) . Sayfada gezinmek i├žin herhangi bir ├Â─če olu┼čturulmam─▒┼čsa ve kendisiyle ili┼čkilendirilmi┼č baz─▒ JavaScript ┼čeyleri varsa, bir <a> etiket olmamal─▒d─▒r .

Bunun <button /> yerine herhangi bir ┼čeyi veya b, span gibi herhangi bir ├Â─čeyi veya ihtiyac─▒n─▒za g├Âre ne uygunsa onu kullanabilirsiniz, ├ž├╝nk├╝ t├╝m ├Â─čelere etkinlik eklemenize izin verilir.


Yani, kullanman─▒n bir faydas─▒ var <a href="#"> . ─░mle├ž i┼čaret├žisini, varsay─▒lan olarak bu ├Â─čenin ├╝zerine getirdi─činizde al─▒rs─▒n─▒z a href="#" . Bunun i├žin cursor:pointer; de bu sorunu ├ž├Âzen bunun i├žin CSS'yi kullanabilece─činizi d├╝┼č├╝n├╝yorum .

Ve sonunda, etkinli─či JavaScript kodunun kendisinden ba─čl─▒yorsan─▒z, etiket event.preventDefault() kullan─▒yorsan─▒z bunu ba┼čarmak i├žin orada yapabilirsiniz <a> , ancak bunun i├žin bir <a> etiket kullanm─▒yorsan─▒z , orada bir avantaj elde edersiniz. Bunu yapmana gerek yok.

Yani, g├Âr├╝rseniz, bu t├╝r ┼čeyler i├žin bir etiket kullanmamak daha iyidir.


23







Ba─člant─▒lar─▒ yaln─▒zca JavaScript ├žal─▒┼čt─▒rma amac─▒yla kullanmay─▒n.

Href = "#" kullan─▒m─▒, sayfay─▒ yukar─▒ kayd─▒r─▒r; void (0) kullan─▒m─▒ taray─▒c─▒da gezinme sorunlar─▒ yarat─▒r.

Bunun yerine, ba─člant─▒dan ba┼čka bir ├Â─če kullan─▒n:

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

Ve CSS ile stil:

 .funcActuator { 
  cursor: default;
}

.funcActuator:hover { 
  color: #900;
}
 

23







JQuery kullanmak daha iyi olurdu,

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

ve her ikisi de ihmal href="#" ve href="javascript:void(0)" .

Ba─člant─▒ etiketi i┼čaretlemesi gibi olur

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

Yeterince basit!


22







Kullanaca─č─▒n─▒z edersek angularjs , a┼ča─č─▒daki kullanabilirsiniz:

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

Bu hi├žbir ┼čey yapmayacak.

Ek olarak

  • (#) 'Daki ÔÇőÔÇőgibi sizi sayfan─▒n ba┼č─▒na g├Ât├╝rmez
    • Bu nedenle, a├ž─▒k├ža false JavaScript ile d├Ânmeniz gerekmez
  • K─▒sa ve ├Âzl├╝

20







Genellikle, JavaScript'i devre d─▒┼č─▒ b─▒rakan istemcilerin hala baz─▒ i┼člevlere sahip oldu─čundan emin olmak i├žin her zaman bir geri d├Ân├╝┼č ba─člant─▒n─▒z olmal─▒d─▒r. Bu konsepte g├Âze ├žarpmayan JavaScript denir.

├ľrnek ... A┼ča─č─▒daki arama ba─člant─▒n─▒z oldu─čunu varsayal─▒m:

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

Her zaman a┼ča─č─▒dakileri yapabilirsiniz:

 var link = document.getElementById('searchLink');

link.onclick = function() {
    try {
        // Do Stuff Here        
    } finally {
        return false;
    }
};
 

Bu ┼čekilde, JavaScript'i devre d─▒┼č─▒ b─▒rakm─▒┼č ki┼čiler y├Ânlendirilirken search.php , JavaScript'i g├Âr├╝nt├╝leyenler geli┼čmi┼č i┼člevlerinizi g├Âr├╝r.


19







E─čer bir href se├ženek yoksa, bir ba─člant─▒ etiketi kullanmak i├žin hi├žbir neden yoktur.

Neredeyse her ├Â─čeye etkinlikler (t─▒klatma, gezinme vb.) Ekleyebilir, neden a span veya a kullanm─▒yorsunuz div ?

Ve JavaScript'i devre d─▒┼č─▒ b─▒rakan kullan─▒c─▒lar i├žin: bir geri d├Ân├╝┼č yoksa (├Ârne─čin, bir alternatif href ), en az─▒ndan bir <a> veya bir <span> etiket ne olursa olsun, o ├Â─čeyi g├Âremez ve etkile┼čime giremezler.


18







Neyi ba┼čarmak istedi─činize ba─čl─▒ olarak, ├╝zerini unutabilir ve sadece href'i kullanabilirsiniz:

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

Yanl─▒┼č d├Ând├╝rme ihtiyac─▒ etraf─▒nda olur. Bu # se├žene─či be─čenmedim, ├ž├╝nk├╝ bahsedildi─či gibi, kullan─▒c─▒y─▒ sayfan─▒n en ├╝st├╝ne g├Ât├╝r├╝r. E─čer JavaScript'i etkinle┼čtirmemi┼člerse (├žal─▒┼čt─▒─č─▒m yerde nadir, ancak ├žok iyi bir fikir), kullan─▒c─▒y─▒ g├Ânderecek ba┼čka bir yeriniz varsa, Steve'in ├Ânerdi─či y├Ântem harika ├žal─▒┼č─▒yor.

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

Son olarak, javascript:void(0) kimsenin bir yere gitmesini istemiyorsan─▒z ve bir JavaScript i┼člevini ├ža─č─▒rmak istemiyorsan─▒z kullanabilirsiniz. Bir mouseover olay─▒n─▒n ger├žekle┼čmesini istedi─činiz bir resme sahipseniz harika ├žal─▒┼č─▒yor, ancak kullan─▒c─▒n─▒n t─▒klayaca─č─▒ bir ┼čey yok.


16







Birka├ž sahte link ald─▒─č─▒mda, onlara 'linksiz' s─▒n─▒f─▒n─▒ vermeyi tercih ederim.

Sonra jQuery, a┼ča─č─▒daki kodu eklerim:

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

Ve HTML i├žin, ba─člant─▒ basit

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

├çapalar i├žin kullan─▒lmad─▒klar─▒ s├╝rece Hash-Tag'leri kullanmay─▒ sevmiyorum ve sadece ikiden fazla sahte ba─člant─▒ya sahip oldu─čumda yukar─▒dakileri yap─▒yorum, aksi halde javascript ile giderim: void (0).

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

Genellikle, sadece bir ba─člant─▒ kullanmaktan ka├ž─▒nmay─▒ ve bir ┼čeyi bir yay─▒lma noktas─▒na sarmay─▒ seviyorum ve bunu bir a├ž─▒l─▒r pencere veya i├žerik g├Âsterimi gibi baz─▒ JavaScript kodlar─▒n─▒ aktif hale getirmenin bir yolu olarak kullan─▒n.


16







Sahte bir ikilik sundu─čuna inan─▒yorum. Bunlar sadece iki se├ženek de─čil.

Ba─člant─▒ etiketini kullan─▒yor olsan─▒z bile, burada ger├žekten bir ba─člant─▒ya sahip olmad─▒─č─▒n─▒z─▒ ├Âneren D4V360 ile ayn─▒ fikirdeyim. Sahip oldu─čunuz tek ┼čey biraz farkl─▒ davranmas─▒ gereken bir belgenin ├Âzel bir b├Âl├╝m├╝. Bir <span> etiket ├žok daha uygundur.


16







Her ikisini de Google Chrome'da geli┼čtirici ara├žlar─▒yla denedim ve id="#" 0,32 saniye s├╝rd├╝. ─░ken javascript:void(0) y├Ântemi sadece 0.18 saniye s├╝rd├╝. Yani Google Chrome'da javascript:void(0) daha iyi ve daha h─▒zl─▒ ├žal─▒┼č─▒yor.


16







Ben ┼čahsen onlar─▒ kombinasyon halinde kullan─▒yorum. ├ľrne─čin:

HTML

 <a href="#">Link</a>
 

biraz jQuery ile

 $('a[href="#"]').attr('href','javascript:void(0);');
 

veya

 $('a[href="#"]').click(function(e) {
   e.preventDefault();
});
 

Ancak, kullan─▒c─▒ bo┼č bir ├žapa t─▒klad─▒─č─▒nda sayfan─▒n en ├╝ste atlamas─▒n─▒ ├Ânlemek i├žin kullan─▒yorum. Nadiren onClick ve di─čer on etkinlikleri do─črudan HTML olarak kullan─▒yorum.

Benim ├Ânerim, ├žapa yerine ├Âzniteli─če <span> sahip eleman kullanmak olacakt─▒r class . ├ľrne─čin:

 <span class="link">Link</span>
 

Ard─▒ndan i┼člevi .link , v├╝cuda sar─▒lm─▒┼č bir komut dosyas─▒ ile </body> etiketin hemen ├Ân├╝nde veya harici bir JavaScript belgesinde atay─▒n .

 <script>
    (function($) {
        $('.link').click(function() {
            // do something
        });
    })(jQuery);
</script>
 

* Not: Dinamik olarak olu┼čturulan ├Â─čeler i├žin ┼čunlar─▒ kullan─▒n:

 $('.link').on('click', function() {
    // do something
});
 

Ve dinamik olarak olu┼čturulan ├Â─čelerle olu┼čturulan dinamik olarak olu┼čturulan ├Â─čeler i├žin ┼čunlar─▒ kullan─▒n:

 $(document).on('click','.link', function() {
    // do something
});
 

Ard─▒ndan, yay─▒lma ├Â─česini k├╝├ž├╝k bir CSS ile bir ├žapa gibi g├Âr├╝necek ┼čekilde bi├žimlendirebilirsiniz:

 .link {
    color: #0000ee;
    text-decoration: underline;
    cursor: pointer;
}
.link:active {
    color: red;
}
 

─░┼čte yukar─▒da belirtilenlerin bir jsFiddle ├Ârne─či.


15







Temelde ilerici geli┼čtirme kullanarak bu pratik makaleden de ├Âteleme yap─▒yorum . K─▒sa cevap, hi├ž kullanmaman─▒z javascript:void(0); veya # kullan─▒c─▒ aray├╝z├╝n├╝z├╝n JavaScript'in etkinle┼čtirildi─čine dair bir fikir edinmedi─činiz, bu durumda kullanman─▒z gerekti─čidir javascript:void(0); . Ayr─▒ca, yay─▒lma i┼člevini ba─člant─▒lar olarak kullanmay─▒n, ├ž├╝nk├╝ bu ba┼člang─▒├žta anlamsal olarak yanl─▒┼čt─▒r.

Uygulaman─▒zda SEO dostu URL rotalar─▒n─▒ kullanmak / Home / Action / Parameters gibi, ayn─▒ zamanda iyi bir uygulamad─▒r. ├ľnce JavaScript kullanmadan ├žal─▒┼čan bir sayfaya bir ba─člant─▒n─▒z varsa, daha sonra deneyimi art─▒rabilirsiniz. Bir ├žal─▒┼čma sayfas─▒na ger├žek bir ba─člant─▒ kullan─▒n, sonra sunumu geli┼čtirmek i├žin bir onlick etkinli─či ekleyin.

─░┼čte bir ├Ârnek. Ana Sayfa / ChangePicture, kullan─▒c─▒ aray├╝z├╝ ve standart HTML g├Ânderme butonlar─▒ ile tamamlanm─▒┼č bir sayfadaki forma ├žal─▒┼čan bir ba─člant─▒d─▒r, ancak jQueryUI butonlar─▒ ile modal bir diyaloga enjekte edilmek daha ho┼č g├Âr├╝n├╝r. Her iki ┼čekilde de, mobil ilk geli┼čtirmeyi kar┼č─▒layan taray─▒c─▒ya ba─čl─▒ olarak ├žal─▒┼č─▒r.

 <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



─░lgili yay─▒nlar


'Kullanma' direktifleri ad alan─▒n─▒n i├žinde mi yoksa d─▒┼č─▒nda m─▒ olmal─▒?

JavaScript'in ÔÇťwithÔÇŁ ifadesi i├žin yasal kullan─▒mlar var m─▒?

Jenkins, Travis-CI'ye kar┼č─▒. A├ž─▒k Kaynakl─▒ bir proje i├žin hangisini kullan─▒rs─▒n─▒z? [kapal─▒]

JavaScript'te kapatman─▒n pratikte kullan─▒m─▒ nedir?

JavaScript'te s├Âzdizimi i├žinÔÇŽ kullanarak d├Âng├╝ sayac─▒n─▒ / dizinini al─▒n

Java ek a├ž─▒klama ├╝yeleri i├žin hangi t├╝rler kullan─▒labilir?

Program─▒ma ├Âzg├╝ bir ikili dosya i├žin hangi MIME t├╝r├╝n├╝ kullan─▒n?

C void arg├╝manlar─▒n─▒ ÔÇťvoid foo (void)ÔÇŁ veya ÔÇťvoid foo ()ÔÇŁ olarak kullanmak daha m─▒ iyidir? [├žift]

Hangisi daha verimli, her bir d├Âng├╝ i├žin mi yoksa bir yineleyici mi?

Spring Boot'a ├žal─▒┼čt─▒r─▒labilir jar i├žin hangi ana s─▒n─▒f─▒ kullanaca─č─▒m─▒ nas─▒l s├Âylerim?

Etiketle ilgili di─čer sorular [javascript]


jQuery.click () vs onClick

Git ve Mercurial - Kar┼č─▒la┼čt─▒rma ve Kontrast

Docker'da ÔÇťexposeÔÇŁ ve ÔÇťpublishÔÇŁ aras─▒ndaki fark nedir?

Java'da rasgele say─▒lar alma [yinelenen]

Android ListView ay─▒r─▒c─▒ ├žizgisinin rengini nas─▒l de─či┼čtirebilirim?

Directory.GetFiles () '─▒ birden fazla filtreyle ├ža─č─▒rabilir misiniz?

InsecurePlatformWarning: Ger├žek bir SSLContext nesnesi mevcut de─čil. Bu, urllib3'├╝n SSL'yi uygun ┼čekilde yap─▒land─▒rmas─▒n─▒ ├Ânler [kopya]

>>> = C'deki operat├Âr nedir?

─░OS7'de durum ├žubu─ču gizlenemiyor

Yeni anahtar kelimeyi C++ 'da ne zaman kullanmal─▒y─▒m?