我在我的HTML中使用它:
<a href="#" onclick="preload('12345');return false;">Click</a>
它在外部js文件上调用函数preload()并且到目前为止工作正常。
但我有几十个这样的链接,并希望删除那些&#34;返回false&#34;并且只将一个直接放在js文件中的preload() - 函数中。
但它总会被忽略?! &#34;返回false&#34;真的只能在onclick =&#34; ...&#34;?
内部工作答案 0 :(得分:9)
addEventListener
或使用<a href="#" class="link">Click</a>
<script type="text/javascript">
document.querySelector('.link').addEventListener('click', function (e) {
// some code;
e.preventDefault();
}, false);
</script>
例如:
/* @var \Symfony\Component\BrowserKit\Cookie $cookie */
$cookie = $client->getCookieJar()->get('foo');
答案 1 :(得分:1)
将return false;
放入内联onclick
属性可防止发生默认行为(导航)。你也可以通过破解JavaScript中的onclick
属性来实现这一点(即将.onclick
属性指定为一个返回false的函数),但是这样做是不合时宜的并且可能有害(例如,它会覆盖附加到该事件的任何其他事件侦听器。)
阻止<a>
元素的默认点击行为发生的现代方法只是从附加的事件监听器中调用触发事件的.preventDefault()
方法。您可以使用.addEventListener()
一些例子:
// this works but is not recommended:
document.querySelector(".clobbered").onclick = function() {
return false;
};
// this doesn't work:
document.querySelector(".attached").addEventListener("click", function() {
return false;
});
// this is the preferred approach:
document.querySelector(".attachedPreventDefault").addEventListener("click", function(e) {
e.preventDefault();
});
&#13;
<a href="/fake" onclick="return false;">If you click me, I don't navigate</a><br/>
<a class="clobbered" href="/fake">If you click me, I don't navigate</a>
<br/>
<a class="attached" href="/fake">If you click me, I navigate</a>
<br/>
<a class="attachedPreventDefault" href="/fake">If you click me, I don't navigate</a>
&#13;
答案 2 :(得分:0)
我建议不要使用onClick()而是使用类似的jQuery。
答案 3 :(得分:0)
我认为如果您将其放入preload
函数并在onclick
事件中,只需将return false
放入即可。也许您已尝试过此代码?
<a href="#" onclick="return preload('12345');">Click</a>
答案 4 :(得分:0)
尝试将return false子句放入内联函数
<input onclick="yourFunction();return false;">