我想使用jQuery将事件处理程序绑定到多个元素(包含元素self.el)。
以下代码是否正确?
$("input", "textarea", "select", self.el).on("keyup", function(e) {
if($.keys[e.keyCode] != "TAB") {
self.callChangeAction(e);
}
})
答案 0 :(得分:1)
$(self.el).on("keyup", "input, textarea, select", function(e) {
if ($.keys[e.keyCode] != "TAB") {
self.callChangeAction(e);
}
})
答案 1 :(得分:0)
处理输入事件,textareas,选择AND self.el:
$("input, textarea, select").add(self.el).on(...)
处理输入事件,textareas,选择CONTAIN self.el(这没有多大意义):
$("input, textarea, select").has(self.el).on(...)
处理输入,textareas上的事件,在开头选择INSIDE self.el:
$("input, textarea, select", self.el).on(...)
//alternative:
$(self.el).find("input, textarea, select").on(...)
处理任何输入,textareas上的事件,选择在事件发生时INSIDE self.el:
$(self.el).on(events, "input, textarea, select", ...)
答案 2 :(得分:0)
如果您希望将事件处理程序绑定到所有元素,而不是选择器列表,则应使用单个逗号分隔选择器:
$('select,input,textarea', self.el).on(...)
本身只是.find
的简写:
$(self.el).find('select,input,textarea').on(...)
或者,假设您希望捕获的事件是"冒泡",您可以使用事件委派,其中父元素代表所有人捕获事件其子代,然后jQuery检查事件发生的实际元素,以确定它是否是你想要的那个:
$(self.el).on('keyup', 'select,input,textarea', ...);