我有这样的链接:
<a href="#" onclick="myfunc({a:1, b:'hi'})" />click</a>
<a href="#" onclick="myfunc({a:3, b:'jo'})" />click</a>
我想在myfunc中执行preventDefault()
,因为点击链接时会在地址栏中添加#
(不做return false;
或href='javascript:void(0);'
)
答案 0 :(得分:135)
我相信你可以将event
传入函数内联,这将是W3C兼容浏览器中引发事件的event
对象(即旧版本的IE仍然需要在事件内部进行检测)处理函数来查看window.event
)。
<强> A quick example 即可。
function sayHi(e) {
e.preventDefault();
alert("hi");
}
<a href="http://google.co.uk" onclick="sayHi(event);">Click to say Hi</a>
event
处理程序的onclick
更改为e
之类的其他内容,单击“运行”,然后注意重定向确实发生在警报之后(结果窗格显示为白色,展示重定向)。答案 1 :(得分:98)
最简单的解决方案就是:
<a href="#" onclick="event.preventDefault(); myfunc({a:1, b:'hi'});" />click</a>
对于没有JS启用的浏览器的后备文件来说,实际上这是一种做文件缓存清除的好方法(如果没有JS,没有缓存破坏)
<a onclick="
if(event.preventDefault) event.preventDefault(); else event.returnValue = false;
window.location = 'http://www.domain.com/docs/thingy.pdf?cachebuster=' +
Math.round(new Date().getTime() / 1000);"
href="http://www.domain.com/docs/thingy.pdf">
如果启用了JavaScript,它会打开带有缓存清除查询字符串的PDF,否则只会打开PDF。
答案 2 :(得分:10)
试试这个:
<script>
$("a").click(function(event) {
event.preventDefault();
});
</script>
答案 3 :(得分:7)
<script type="text/javascript">
$('a').click(function(){
return false;
});
<script>
答案 4 :(得分:5)
为链接添加一个唯一的类,并使用一个javascript来防止此类链接的默认值:
<a href="#" class="prevent-default"
onclick="$('.comment .hidden').toggle();">Show comments</a>
<script>
$(document).ready(function(){
$("a.prevent-default").click(function(event) {
event.preventDefault();
});
});
</script>
答案 5 :(得分:4)
你能不能只从a标签中删除href属性?
答案 6 :(得分:4)
我认为当我们使用onClick时,我们想要做一些与默认不同的事情。因此,对于所有与onClick的链接:
$("a[onClick]").on("click", function(e) {
return e.preventDefault();
});
答案 7 :(得分:1)
您可以像这样从onclick访问事件:
<button onclick="yourFunc(event);">go</button>
在您的javascript函数中,我的建议是将第一行语句添加为:
function yourFunc(e) {
e = e ? e : event;
}
然后将e用作事件变量
答案 8 :(得分:0)
e.preventDefault(); 来自https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault
或者从您的方法中返回false。
答案 9 :(得分:0)
没有任何JS库或jQuery。 如果可能的话,打开一个漂亮的弹出窗口。安全地无法正常打开链接。
<a href="https://acme.com/" onclick="onclick="openNewWindow(event, this.href);">...</a>
辅助功能:
function openNewWindow(event, location) {
if (event.preventDefault && event.stopImmediatePropagation) {
event.preventDefault();
event.stopImmediatePropagation();
} else {
event.returnValue = false;
}
window.open(location, 'targetWindow', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=800,height=450');
}
答案 10 :(得分:-1)
简单!
onclick="blabla(); return false"