防止在输入字段上单击事件
Prevent click-Event on input field
我正在为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()
方法激活一个输入字段时,键盘弹出并将页面向上滑动一点,然后click
事件被触发,并激活另一个比我想要的输入低一点的输入字段。
为了防止点击,我已经尝试过:
$('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;
});
但这也不起作用:(
有没有其他技巧可以在我触摸后立即激活输入字段而不延迟?
你可以试试这个
$('input, textarea, select').click(function(event) {
event.preventDefault();
});
您需要使用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();
});
文件:http://api.jquery.com/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();
});
相关文章:
- 将单击事件添加到数据表
- 将单击事件添加到附加的项目中
- 在IE8中不起作用的元素上触发单击事件
- 链接上的IE10 jquery句柄单击事件不起作用
- 如何使用纯 JavaScript 在所有浏览器中区分左/右/中键单击事件
- 如何在master中调用细节网格作为单击事件
- 兰吉 |如何在 span 标签上使用单击事件删除突出显示的文本
- 如何隐藏按钮单击事件上的占位符
- 复选框,然后单击事件处理
- 如何使用for循环添加所有按钮'单击事件
- 手柄'img'单击事件并插入'alt'使用jQuery将属性转换为文本框
- 覆盖单击事件不起作用
- 单击事件打开两个弹出菜单
- 单击事件不起作用
- 从其他元素上的单击事件访问image src属性
- 单击事件中的ajax请求后重定向
- 如何缩放地图框传单中的标记单击事件
- 在没有焦点的情况下捕获画布上的第一次单击事件
- 通过单击事件识别画布上的对象
- 如何将单击事件添加到JQuery中动态添加的元素中