回答

收藏

JavaScript 链接使用哪个“href”值,“#”还是“javascript:void(0)”?

技术问答 技术问答 252 人阅读 | 0 人回复 | 2023-09-12

以下是构建链接的两种方法 JavaScript 代码。哪个更好?
) r& D5 S6 j  Q
    function myJsFunc()      alert("myJsFunc");}[url=]Run JavaScript Code[/url]. _1 b1 {9 Z9 n# X7 \( `
或者8 E% S) c0 U6 ^0 y! k+ U
    function myJsFunc()      alert("myJsFunc");} [url=]Run JavaScript Code[/url]
    , G6 T* @4 j, u4 u1 U& q9 @3 _' `0 R
               " B+ ?6 P( g+ s, f# ]
    解决方案:                                                                ' J$ R# n8 Y; V: ^
                                                                我用javascript:void(0).
! y6 }- T( L+ c. n2 I/ c( m三个原因#在一组开发人员中使用,不可避免地会导致一些人使用函数的返回值,如下所示:
% }' i, ~8 Q1 |  v& ]
    function doSomething() {    //Some code    return false;}
    * b. [6 F! V. F  E# u
但后来他们忘了return doSomething()在 onclick 中只用, 中只用doSomething().% w! p' r6 X& ^* P
避免的第二个原因#是return false;若调用函数抛出错误,final将不会执行。因此,开发人员还必须记住在调用函数中正确处理任何错误。( |% K5 X+ E% u* ^, A% H
第三个原因是在某些情况下,onclick事件属性是动态分配的。我更喜欢调用一个函数或动态分配它,而不是为一个或另一个附件编写函数代码。onclick(或任何东西) HTML 标记看起来像这样:
( f" r1 L* `! e4 A! t' k
    onclick="someFunc.call(this)"
    6 L) u! w% O0 f
或者
" ?# U* x+ V  G( a" _7 H. q1 h4 w
    onclick="someFunc.apply(this,arguments)"1 N+ D3 U6 B' q* c4 O9 x' F' M
使用javascript:void(0)上述所有问题都可以避免,我还没有发现任何不利的例子。1 o5 y1 h. X, z4 H2 B
因此,如果你是一个单独的开发人员,你显然可以做出自己的选择,但如果你是一个团队,你必须声明:
& f! X5 w. `( i% F使用href="#",确保onclick始终包含return false;在最后,任何被调用的函数都不会抛出错误,并且如果您将函数动态附加到onclick请确保它不会抛出错误并返回属性false。! Q+ Z9 h5 U/ w" B5 `" y# T/ h
或者
$ c& I0 e# O, q: _/ P利用 href="javascript:void(0)"
# Y6 w# U+ l! X+ P2 I$ }第二显然更容易沟通。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则