-3

我面临一个问题。

我有一个href,当我点击它时它会调用一个javascript函数“delete_element_on_page”。

因此,当我用鼠标单击 HREF 时,一切都很好,并且该函数被调用。

但是,由于 HREF 具有焦点,如果继续按我的 Enter 键,该函数会一次又一次地被调用,从而导致不希望的结果。

我怎样才能防止这种情况发生?

我在想 1. 在调用我的函数时模糊对 href 的关注 --> 我可以这样做,但这意味着我必须为每个 HREF 手动执行此操作,因为 jquery.blur 只能在个人处触发元素级别。--> 或者,是否有一个相当于我可以做通用模糊的javascript,不管哪个元素是焦点?

或者

  1. 停用触发点击 HREF 的回车键 --> 这甚至可能吗?如果是这样,在代码复杂性/兼容性等方面值得我花时间。

非常感谢 :)

4

3 回答 3

1

上面的答案将阻止键盘单击和鼠标单击,这将阻止 enter 键在该链接上执行任何操作。所以它对应于#2

<a id="fail" href="http://jquery.com">default click action is prevented</a>
<script>
$("#fail").keydown(function(event) {
  event.preventDefault();
});
</script> 
于 2012-04-21T04:45:42.100 回答
1

您可以绑定您的事件并避免将 javascript 触发器放置在 html 标记内。

使用 jQuery(简单且更可靠的方式),您可以这样做:

<script src="http://code.jquery.com/jquery.min.js"></script>
<script>
    $("#myelementid").bind("click",function(e){
        e.preventDefault(); // important, to prevent trigering the default a href

        // your code goes here

        $(this).blur();
    });
</script>
于 2012-04-21T04:18:08.040 回答
0

可以通过jquery绑定click事件处理,不推荐使用href调用js函数:

$("a#id").click(function(){

 // the code goes here;

}) 
于 2012-04-21T04:18:12.933 回答