如何防止onclick方法中的默认值?我有一个方法,我也传递自定义值
<a href="#" onclick="callmymethod(24)">Call</a>
function callmymethod(myVal){
//doing custom things with myVal
//here I want to prevent default
}
答案 0 :(得分:80)
让你的回调返回false
并将其传递给onclick
处理程序:
<a href="#" onclick="return callmymethod(24)">Call</a>
function callmymethod(myVal){
//doing custom things with myVal
//here I want to prevent default
return false;
}
要创建可维护的代码,您应该避免使用“内联Javascript”(即:直接在元素标记内的代码)并通过以下方式修改元素的行为包含的Javascript源文件(称为unobtrusive Javascript)。
加价:
<a href="#" id="myAnchor">Call</a>
代码(单独的文件):
// Code example using Prototype JS API
$('myAnchor').observe('click', function(event) {
Event.stop(event); // suppress default click behavior, cancel the event
/* your onclick code goes here */
});
答案 1 :(得分:35)
尝试
<a href="#" onclick="callmymethod(24); return false;">Call</a>
答案 2 :(得分:32)
在我看来,答案是错误的!当你简单地回归假时,他要求event.preventDefault();
;它也会调用event.preventDefault();
和event.stopPropagation();
!
你可以解决这个问题:
<a href="#" onclick="callmymethod(event, 24)">Call</a>
function callmymethod(e, myVal){
//doing custom things with myVal
//here I want to prevent default
e = e || window.event;
e.preventDefault();
}
答案 3 :(得分:10)
您可以捕获事件,然后使用preventDefault()阻止它 - 使用纯Javascript
document.getElementById("xyz").addEventListener('click', function(event){
event.preventDefault();
console.log(this.getAttribute("href"));
/* Do some other things*/
});
答案 4 :(得分:8)
只需放置“javascript:void(0)”,代替href标签中的“#”
<a href="javascript:void(0);" onclick="callmymethod(24)">Call</a>
答案 5 :(得分:8)
这对我有用
<a href="javascript:;" onclick="callmymethod(24); return false;">Call</a>
答案 6 :(得分:1)
答案 7 :(得分:0)
将所有html页面的功能用法更改为return false
太麻烦了。
因此,这是一个仅对功能本身进行修补的经过测试的解决方案:
function callmymethod(myVal) {
// doing custom things with myVal
// cancel default event action
var event = window.event || callmymethod.caller.arguments[0];
event.preventDefault ? event.preventDefault() : (event.returnValue = false);
return false;
}
这正确地阻止了onclick事件处理程序完成后IE6,IE11和最新的Chrome浏览器访问href="#"
。
积分:
答案 8 :(得分:0)
如果需要将其放入标签中。不是最好的解决方案,但它会起作用。
确保将onclick事件放在href前面。这样才对我有用。
<a onclick="return false;" href="//www.google.de">Google</a>
答案 9 :(得分:0)
另一种方法是使用属性event
中的onclick
对象(无需在函数中添加其他参数来传递事件)
function callmymethod(myVal){
console.log(myVal);
}
<a href="#link" onclick="event.preventDefault();callmymethod(24)">Call</a>
答案 10 :(得分:-2)
为元素提供类或id并使用jquery函数unbind();
$(".slide_prevent").click(function(){
$(".slide_prevent").unbind();
});