html - Which "href" value should I use for JavaScript links, "#" or "javascript:void(0)"? -


the following 2 methods of building link has sole purpose of running javascript code. better, in terms of functionality, page load speed, validation purposes, etc.?

function myjsfunc() {      alert("myjsfunc");  }
<a href="#" onclick="myjsfunc();">run javascript code</a>

or

function myjsfunc() {      alert("myjsfunc");  }
 <a href="javascript:void(0)" onclick="myjsfunc();">run javascript code</a>

i use javascript:void(0).

three reasons. encouraging use of # amongst team of developers inevitably leads using return value of function called this:

function dosomething() {     //some code     return false; } 

but forget use return dosomething() in onclick , use dosomething().

a second reason avoiding # final return false; not execute if called function throws error. hence developers have remember handle error appropriately in called function.

a third reason there cases onclick event property assigned dynamically. prefer able call function or assign dynamically without having code function 1 method of attachment or another. hence onclick (or on anything) in html markup this:

onclick="somefunc.call(this)" 

or

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

using javascript:void(0) avoids of above headaches, , haven't found examples of downside.

so if you're lone developer can make own choice, if work team have either state:

use href="#", make sure onclick contains return false; @ end, called function not throw error , if attach function dynamically onclick property make sure not throwing error returns false.

or

use href="javascript:void(0)"

the second easier communicate.


Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -