event.preventDefault()后如何重新启用默认值 [英] how to re-enable default after doing event.preventDefault()

查看:708
本文介绍了event.preventDefault()后如何重新启用默认值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道这个确切的问题是这里,但是答案没有为我需要做的工作,我想我会给一些示例代码,并解释一下...

  function(event){
//按向上或向右:前进到下一个视频
if(event.keyCode == 40 || event.keyCode == 39){
event.preventDefault();
$(。current)。next()。click();
}
//向下或向左:返回上一个视频
else if(event.keyCode == 38 || event.keyCode == 37){
event.preventDefault();
$(。current)。 prev()。click();
}
}
);

它基本上禁用箭头键用于别的东西,但是做:

  $(document).keypress(function(){}); 

不再启用默认功能...我需要它滚动页面而不必创建一个滚动功能...



任何想法?



谢谢, $ b Matt

解决方案

我不知道这是正确的处理方法。



一个更好的方法来解决这个问题将是在你的document.keypress指令中进行一些检查..像..

  var enableKeys = false; 

$(document).keypress(
function(event){
//按向上或向右:提前到下一个视频
if(event.keyCode == 40 || event.keyCode == 39&& enableKeys){
event.preventDefault();

$(。current)。
}
//按向下或向左:返回上一个视频
else if(event.keyCode == 38 || event.keyCode == 37&& enableKeys){
event.preventDefault();
$(。current)。prev()。click();
}
}
);

然后,只要您有任何需要,可以使用hover或其他方法来控制enablekey。 / p>

I know this exact question was asked here, but the answer didn't work for what I needed to do so I figured I'd give some example code and explain a bit...

$(document).keypress(
    function (event) {
        // Pressing Up or Right: Advance to next video
        if (event.keyCode == 40 || event.keyCode == 39) {
            event.preventDefault();
            $(".current").next().click();
        }
        // Pressing Down or Left: Back to previous video
        else if (event.keyCode == 38 || event.keyCode == 37) {
            event.preventDefault();
            $(".current").prev().click();
        }
     }
 );

It basically disables the arrow keys to use them for something else, but doing:

$(document).keypress(function () { });

doesn't enable the default function again... I need it to scroll the page without having to create a scroll function for it...

Any ideas?

Thanks,
Matt

解决方案

I'm not sure this is the right way to handle it.

A better way to approach this problem would be to put some kind of check inside your document.keypress instructions.. like..

var enableKeys = false;

$(document).keypress(
    function (event) {
        // Pressing Up or Right: Advance to next video
        if (event.keyCode == 40 || event.keyCode == 39 && enableKeys) {
            event.preventDefault();

            $(".current").next().click();
        }
        // Pressing Down or Left: Back to previous video
        else if (event.keyCode == 38 || event.keyCode == 37 && enableKeys) {
            event.preventDefault();
            $(".current").prev().click();
        }
     }
 );

Then control the enablekeys wherever you feel necessary, either with a hover, or something along those lines.

这篇关于event.preventDefault()后如何重新启用默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆