我正在尝试阻止对锚点(“a”)标记的默认操作。在我的场景中,使用ajax(在提交表单之后)动态渲染几行html,并且我想添加一个事件监听器
在单击新创建的链接时执行操作
阻止浏览器打开该链接。
以下是我写的内容:
a = document.getElementById("new_link");
a.addEventListener("click",function(){alert("preform action");
return false;},false);
我也尝试过:
a.addEventListener("click",function(e){e.preventDefault(); alert("preform action");});
当我点击链接“a”时,它会显示警告信息,但仍会打开“href”链接,我希望它显示该信息,然后停止。
如果附加到预先存在的链接,这两种方法都会显示警报,但是当附加到新插入的链接时(通过ajax),这两种方法都不起作用..这就是我需要做的。
任何帮助/建议。
感谢。
答案 0 :(得分:5)
使用jQuery库,您可以通过调用作为回调参数传递的事件的.preventDefault()方法来停止绑定到jQ对象的事件(在本例中为所有元素)。
试试这个:
$('a').click( function(e) {
e.preventDefault();
alert("perform action");
});
答案 1 :(得分:4)
恢复旧主题,但我想提供一个不依赖于jQuery的选项。
a = document.getElementById("new_link");
a.addEventListener("click",function(){
alert("preform action");
window.event.preventDefault();
},false);
答案 2 :(得分:3)
您可以使用jquery-nolink插件背后的想法并执行以下操作:
$('new_link').attr("href", "javascript:void(0);");
答案 3 :(得分:2)
只需添加“javascript:void(0);”就可以了作为'href'值
例如: -
<a href="javascript:void(0)" > some link </a>
或者你可以使用jQuery
来实现这个目标$('link-identifier').attr("href", "javascript:void(0);");
答案 4 :(得分:1)
还有一种简单的方法可以做到这一点
通过返回布尔值..
example :
<a href='#link' onClick='return false;' > Prevent Link </a>;
使用jquery让它更有趣
$('a').click(function (){
//or if you want to perform some conditions
if(condition){
// your script
}
return false;
});
希望有所帮助☻
答案 5 :(得分:0)
您可以通过添加“ event.preventDefault();”来完成此操作作为锚标记上的“ onclick”值
例如:-
<a href="#" onclick="event.preventDefault()">Text goes here</a>