我正在尝试将事件绑定(bind)到父级而不是每个子级。 我可以成功测试 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
是否与给定的选择器匹配。
无需重新发明轮子。
关于javascript - 将事件绑定(bind)到父级时如何检测输入类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5672029/