jQuery - 单击href =“#”时防止默认行为(没有类或id)

时间:2013-03-16 21:02:58

标签: jquery

我有一个需要更新的现有脚本。它包含很多像这样结构的链接:

<a href="#" onclick="showDialog();return false;">someText</a>

function showDialog(){
$("#modal").dialog("open");
return false;
}

有些人有类或id,有些没有 几乎所有人都打开一个jQuery对话框(情绪化) 我需要停止默认滚动到顶部行为,因为它会导致在视口上方打开的对话框出现间歇性问题。

我想使用preventDefault,但不确定当没有class或id时,最好的使用方法是什么。

这个问题的关键是在不添加类或更改链接结构的情况下解决问题。我需要一个与链接一起使用的解决方案,因为它们在现有脚本中编码。

2 个答案:

答案 0 :(得分:3)

为什么不使用javascript:void(null);作为href?

<a href="javascript:void(null);" onclick="showDialog(); return false;">SomeText</a>

答案 1 :(得分:1)

因为你正在使用jQuery,我会重组它像这样...

HTML

<a href="#" class="dialog-link">Text</a>

JS

<script>
$(document).ready(function(){
    $('.dialog-link').on('click', function(e){
        e.preventDefault();
        $("#modal").dialog("open");
    });
});
</script>

使用return false时不需要preventDefault