如何防止onclick方法中的默认事件处理?

如何在onclick方法中防止默认? 我有一个方法,我也传递一个自定义的值

<a href="#" onclick="callmymethod(24)">Call</a> function callmymethod(myVal){ //doing custom things with myVal //here I want to prevent default } 

让您的callback返回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; } 

但是,为了创build可维护的代码,您应该放弃使用“内联Javascript” (即:直接在元素标签内的代码),并通过包含的Javascript源文件(它被称为不显眼的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 */ }); 

尝试

 <a href="#" onclick="callmymethod(24); return false;">Call</a> 

在我看来,答案是错的! 他要求event.preventDefault(); 当你简单地返回false; 它调用event.preventDefault(); AND event.stopPropagation(); 以及!

你可以这样解决:

 <a href="#" onclick="callmymethod(event, 24)">Call</a> function callmymethod(event, myVal){ //doing custom things with myVal //here I want to prevent default event.preventDefault(); } 

这对我有效

 <a href="javascript:;" onclick="callmymethod(24); return false;">Call</a> 

您可以捕获事件,然后使用preventDefault()来阻止它 – 使用纯Javascript

 document.getElementById("xyz").addEventListener('click', function(event){ event.preventDefault(); console.log(this.getAttribute("href")); /* Do some other things*/ }); 

只需将“javascript:void(0)”放在href标记中的“#”位置即可

 <a href="javascript:void(0);" onclick="callmymethod(24)">Call</a> 

给一个类或id给元素并使用jquery函数unbind();

 $(".slide_prevent").click(function(){ $(".slide_prevent").unbind(); });