Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止HREF(调用JS函数)在;输入“;按键按下了吗?_Javascript_Jquery - Fatal编程技术网

Javascript 如何防止HREF(调用JS函数)在;输入“;按键按下了吗?

Javascript 如何防止HREF(调用JS函数)在;输入“;按键按下了吗?,javascript,jquery,Javascript,Jquery,我面临一个问题 我有一个href,当我点击它时,它会调用一个javascript函数“删除页面上的元素” 因此,当我用鼠标单击HREF时,一切正常,函数被调用 但是,由于HREF有焦点,如果一直按我的enter键,该函数会一次又一次地被调用,从而导致不期望的结果 我怎样才能防止这种情况发生 我在想 1.调用my函数时模糊href上的焦点 -->我可以这样做,但这意味着我必须手动为每个HREF执行此操作,因为jquery.blur只能在单个元素级别触发。 -->或者,是否有一个javascript

我面临一个问题

我有一个href,当我点击它时,它会调用一个javascript函数“删除页面上的元素”

因此,当我用鼠标单击HREF时,一切正常,函数被调用

但是,由于HREF有焦点,如果一直按我的enter键,该函数会一次又一次地被调用,从而导致不期望的结果

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

我在想 1.调用my函数时模糊href上的焦点 -->我可以这样做,但这意味着我必须手动为每个HREF执行此操作,因为jquery.blur只能在单个元素级别触发。 -->或者,是否有一个javascript等价物,我可以在其中进行通用模糊处理,而不管哪个元素处于焦点

  • 禁用enter键以触发a HREF的单击 -->这可能吗?如果是这样的话,在代码复杂性/兼容性等方面值得我花时间

  • 非常感谢:)

    您可以绑定事件,避免将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>
    
    
    $(“#myelementid”).bind(“单击”,函数(e){
    e、 preventDefault();//重要信息,防止触发默认a href
    //你的密码在这里
    $(this.blur();
    });
    
    您可以通过jquery绑定click事件句柄,不建议使用href调用js函数:

    $("a#id").click(function(){
    
     // the code goes here;
    
    }) 
    

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

    
    $(“#失败”).keydown(函数(事件){
    event.preventDefault();
    });
    
    谢谢!我不知道以这种方式绑定会导致与“enter”键不同的行为。谢谢!我不知道这种绑定方式会导致与“enter”键不同的行为。
    <a id="fail" href="http://jquery.com">default click action is prevented</a>
    <script>
    $("#fail").keydown(function(event) {
      event.preventDefault();
    });
    </script>