Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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 防止在输入字段上单击事件_Javascript_Jquery_Cordova_Dom Events - Fatal编程技术网

Javascript 防止在输入字段上单击事件

Javascript 防止在输入字段上单击事件,javascript,jquery,cordova,dom-events,Javascript,Jquery,Cordova,Dom Events,我正在为iPad开发PhoneGap应用程序。在一个屏幕上,您必须填写一个包含大约20个文本字段的表单。由于输入字段仅对单击事件(虽然延迟时间不长,但令人讨厌)作出反应,因此我尝试了以下方法: $('input[type="text"], input[type=number], input[type=date], input[type="tel"], input[type=password], input[type="email"],

我正在为iPad开发PhoneGap应用程序。在一个屏幕上,您必须填写一个包含大约20个文本字段的表单。由于输入字段仅对单击事件(虽然延迟时间不长,但令人讨厌)作出反应,因此我尝试了以下方法:

$('input[type="text"], input[type=number], input[type=date], input[type="tel"], input[type=password], input[type="email"], input[type="url"], textarea, select').live("touchend", function(e) {
    if(!swipe) {
        $(this).focus();
    }
    swipe = false;
    return false;
});
(我在
touchmove
事件中检查刷卡)

这是可行的,但现在我想阻止输入上的原始单击事件。 问题是,当我使用
.focus()
方法激活一个输入字段时,键盘会弹出,将页面向上滑动一点,然后触发
单击
事件,并在我所需输入的下方激活另一个输入字段

为了防止单击,我已尝试:

$('input[type="text"], input[type=number], input[type=date], input[type="tel"], input[type=password], input[type="email"], input[type="url"], textarea, select').live("click", function(e) {
    return false;
});
但这也不起作用:(


有没有另一个技巧可以在我触摸输入字段后立即激活它而不延迟?

您需要使用preventDefault来阻止默认操作:

  $('input[type="text"], input[type=number], input[type=date], input[type="tel"], input[type=password], input[type="email"], input[type="url"], textarea, select').live("click", function(e) {
        e.preventDefault();
    });
文档:

您可以试试这个

 $('input, textarea, select').click(function(event) {
    event.preventDefault();
 });

这是停止传播

$('input[type="text"], input[type=number], input[type=date], input[type="tel"], input[type=password], input[type="email"], input[type="url"], textarea, select').live("click", function(event) {
        event.stopPropagation();
    });

我和你有同样的问题,并试图实现所有其他发布的解决方案,发现没有一个完全适合我。相反,我借鉴了以前所有解决方案的想法,发现这段代码解决了我的问题

    $('input, textarea, select').click(function (event) {
        event.stopPropagation();
    });

追加新元素不单击功能:)是活动的(“单击”)更改。已经一年了。。你应该指定正确的答案