如何在将事件绑定到父事件时检测输入类型
How to detect input types when binding event to parent
我试图将事件绑定到父节点而不是每个子节点。我可以成功地测试SELECT, TEXTAREA和A.我如何测试输入[type='text']?
$('form').bind('focusin', function(e) {
var target = e.target, // e.target grabs the node that triggered the event.
$target = $(target); // wraps the node in a jQuery object
if (target.nodeName === 'SELECT' | target.nodeName === 'TEXTAREA' | target.nodeName === 'A') {
alert('hi');
// do stuff
}
});
注意:从jQuery 1.7开始,使用on()
代替delegate()
使用delegate()
听起来最简单,最适合我。
$('form').delegate('textarea, select, a, input[type="text"]', 'focusin', function () {
alert('hu');
//do stuff
});
实际上它正是你所要求的。事件本身附加到form
并检查target
是否与给定的选择器匹配。
现场演示
不需要重新发明轮子
我建议你把代码改成这样:
$('form').bind('focusin', function(e) {
var $target = $(this); // wraps the node in a jQuery object
if ($target.is('select') || $target.is('textarea') || $target.is('a') || $target.is('input[type="text"]') {
alert('hi');
// do stuff
}
});
或者,您可以使用:input
选择器来选择所有表单元素:
$target.is(':input')
http://api.jquery.com/input-selector/if ($target.attr('type')=='text') {
相关文章:
- 如何检测滚动事件是否像在触摸设备上一样只触发一次
- 检测演示者工具的事件,类似于onmousedown
- 检测window.opener窗口刷新事件
- 检测“;animationend”;链接动画集的事件
- 在离子2中,有任何方法可以将涡旋动量作为一个事件来检测
- 如何识别“;输入“;没有浏览器检测的事件
- 当pswp库关闭时,Photoswipe.js检测到事件
- 如何使用javascript检测不可滚动元素中的滚动事件和方向
- 在onkeyup事件中未检测到文本区域更改
- 检测打印(非打印预览)事件
- 在聊天窗口中检测链接单击事件
- 检测单击子节点并发送槽事件处理程序
- 鼠标滚轮事件检测目前在 Firefox 中不起作用
- 使用 JQuery 事件检测特定的 CSS 关键帧动画
- Paper.js:hitTest通过鼠标事件检测被阻挡的项目
- jQuery / Javascript事件检测页面更改取消
- Cordova滑动事件检测选项为Android, iOS和Windows平板电脑
- 关闭日期拾取器的Angular事件检测
- 函数表达式/事件检测在 ie<=9 或 Safari 中不起作用
- 通过鼠标事件检测移动设备