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. sfunction 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* hfunction 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 Qonclick="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第二显然更容易沟通。 |
|
|
|
|
|