回答

收藏

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

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

以下是构建链接的两种方法 JavaScript 代码。哪个更好?7 w) m* k/ |. n
    function myJsFunc()      alert("myJsFunc");}[url=]Run JavaScript Code[/url]
    ( j& b9 e3 P/ H- C: x" u4 S1 M
或者
: V' N0 e8 s1 M" P. s
    function myJsFunc()      alert("myJsFunc");} [url=]Run JavaScript Code[/url]8 x( i! k. F. h+ k7 ^- ^: P
               . Q; I9 t4 q" x4 b: ]
    解决方案:                                                                9 k5 U- P0 P& s
                                                                我用javascript:void(0).
& A" w7 n& Z7 G三个原因#在一组开发人员中使用,不可避免地会导致一些人使用函数的返回值,如下所示:
( M3 P) H; t2 Q* h
    function doSomething() {    //Some code    return false;}& r/ o/ d1 S) A9 W
但后来他们忘了return doSomething()在 onclick 中只用, 中只用doSomething().' ^! L5 G4 b6 c
避免的第二个原因#是return false;若调用函数抛出错误,final将不会执行。因此,开发人员还必须记住在调用函数中正确处理任何错误。
! T& ]+ I! q3 W3 y% s1 @( C' e* }第三个原因是在某些情况下,onclick事件属性是动态分配的。我更喜欢调用一个函数或动态分配它,而不是为一个或另一个附件编写函数代码。onclick(或任何东西) HTML 标记看起来像这样:
2 H0 v- X4 L1 Q# t& D, K5 Q
    onclick="someFunc.call(this)"- i+ u/ Y6 M! T& p! _) o
或者! S8 W, }' A7 v
    onclick="someFunc.apply(this,arguments)"
    % R1 @3 I: q! C- z* }
使用javascript:void(0)上述所有问题都可以避免,我还没有发现任何不利的例子。2 S! a! S9 i5 i. ?0 K/ g0 m( u1 ]* P
因此,如果你是一个单独的开发人员,你显然可以做出自己的选择,但如果你是一个团队,你必须声明:
. V) K& ?: Y" w# C使用href="#",确保onclick始终包含return false;在最后,任何被调用的函数都不会抛出错误,并且如果您将函数动态附加到onclick请确保它不会抛出错误并返回属性false。
" [  I9 A# Q. X; \或者
8 B0 w( [3 A' }/ v利用 href="javascript:void(0)"
6 h" v9 S8 r5 j第二显然更容易沟通。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则