Javascript “只写”;返回false";一次处理点击多个链接
而不是写入Javascript “只写”;返回false";一次处理点击多个链接,javascript,refactoring,return,Javascript,Refactoring,Return,而不是写入返回false很多时候,有没有一种方法可以设置链接集合,这样,如果单击其中任何一个链接,单击功能将返回false?我仍然希望有大多数链接返回true,因此显示将返回true的代码与返回false的代码将特别受欢迎 目标是编写更少的代码。我也想知道这是不是一个坏主意,因为我不明白为什么 最简单的方法是将一个事件侦听器绑定到文档,并检查目标: 对于具有嵌套图元的锚点,必须添加一个附加循环: var targ = e.target; do { if (targ.nodeName.t
返回false代码>很多时候,有没有一种方法可以设置链接集合,这样,如果单击其中任何一个链接,单击功能将返回false代码>?我仍然希望有大多数链接返回true
,因此显示将返回true
的代码与返回false
的代码将特别受欢迎
目标是编写更少的代码。我也想知道这是不是一个坏主意,因为我不明白为什么 最简单的方法是将一个事件侦听器绑定到文档,并检查目标:
- 对于具有嵌套图元的锚点,必须添加一个附加循环:
var targ = e.target;
do {
if (targ.nodeName.toUpperCase() === 'A') {
e.preventDefault();
break;
}
} while ((targ = targ.parentNode) !== document.documentElement);
// document.body should be fine. Using document.documentElement in case
// that a fool places an anchor outside the <body>
var-targ=e.target;
做{
if(target.nodeName.toUpperCase()=='A'){
e、 预防默认值();
打破
}
}while((target=target.parentNode)!==document.documentElement);
//document.body应该没问题。在case中使用document.documentElement
//一个傻子把锚放在外面
- 链接也可以通过关键事件触发
谢谢,但我仍然希望有许多链接返回true
。你能告诉我们,如果
条件是什么样的吗?我想最简单的应该是……`getElementsByClassName==='dontGoThere',yes/no?target.nodeName.toUpperCase()=='A'
也可以写成/^A$/I.test((target.nodeName)
@KooiInc是的,但非正则表达式方法稍快一些。@timpersone.target
保留链接。检查href
属性的值。例如if(target.href.substring(0,11)==“javascript:”){..prevent default…
,和if(/^javascript:[\S\S]*?return\S+true;?\S*$/.test()){…什么也不做…}
@RobW谢谢,对于答案中的完整性,您能否展示一下对于返回true
与返回false
的链接,HTML是什么样子的?
var targ = e.target;
do {
if (targ.nodeName.toUpperCase() === 'A') {
e.preventDefault();
break;
}
} while ((targ = targ.parentNode) !== document.documentElement);
// document.body should be fine. Using document.documentElement in case
// that a fool places an anchor outside the <body>