有没有办法让keyup
, keypress
, blur
和change
事件在一行中调用相同的函数,还是必须单独执行?
我遇到的问题是我需要使用数据库查找验证一些数据,并且希望确保在任何情况下都不会错过验证,无论是键入还是粘贴到框中。
您可以使用.on()
将函数绑定到多个事件:
$('#element').on('keyup keypress blur change', function(e) {
// e.type is the type of event fired
});
或者只是将函数作为参数传递给普通事件函数:
var myFunction = function() {
...
}
$('#element')
.keyup(myFunction)
.keypress(myFunction)
.blur(myFunction)
.change(myFunction)
从 jQuery 1.7 开始, .on()
方法是将事件处理程序附加到文档的首选方法。对于早期版本, .bind()
方法用于将事件处理程序直接附加到元素。
$(document).on('mouseover mouseout',".brand", function () {
$(".star").toggleClass("hovered");
})
我正在寻找一种方法来获取事件类型,当 jQuery 一次监听多个事件时,谷歌把我放在这里。
所以,对于那些感兴趣的人, event.type
是我的答案:
$('#element').on('keyup keypress blur change', function(event) {
alert(event.type); // keyup OR keypress OR blur OR change
});
jQuery doc中的更多信息。