我正面临一个问题。
当我点击它时,我有一个调用javascript函数“delete_element_on_page”的href。
所以当我用鼠标点击HREF时,一切都很好,并且函数被调用。
但是,因为HREF具有焦点,如果继续按下我的回车键,则会一次又一次地调用该函数,从而导致不希望的结果。
我如何防止这种情况发生?
我在考虑 1.调用函数时模糊对href的关注 - >我可以这样做,但这意味着我必须为每一个HREF手动执行此操作,因为jquery.blur只能在单个元素级别触发。 - >或者,是否有一个javascript相当于我可以做一个通用模糊,无论哪个元素是焦点?
OR
非常感谢:)
答案 0 :(得分: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>
答案 1 :(得分:1)
以上答案将阻止键盘单击和鼠标单击,这将阻止输入键在该链接上执行任何操作。所以它对应于#2
<a id="fail" href="http://jquery.com">default click action is prevented</a>
<script>
$("#fail").keydown(function(event) {
event.preventDefault();
});
</script>
答案 2 :(得分:0)
你可以通过jquery绑定click事件来处理它,不推荐使用href来调用js函数:
$("a#id").click(function(){
// the code goes here;
})