我正在对 keyup 或 paste 执行 Ajax 请求。问题是当用户使用 Control-V 进行粘贴时,会出现两个 ajax 请求——一个用于粘贴,一个用于 keyup。
$("#my-form").bind('keyup paste', function(e) {...}
在 keyup 或 paste 上绑定的好方法是什么?
我正在对 keyup 或 paste 执行 Ajax 请求。问题是当用户使用 Control-V 进行粘贴时,会出现两个 ajax 请求——一个用于粘贴,一个用于 keyup。
$("#my-form").bind('keyup paste', function(e) {...}
在 keyup 或 paste 上绑定的好方法是什么?
您可以使用setTimeout
/clearTimeout
来延迟事件,因此它只会触发一次。
$("#my-form").bind('keyup paste', function(e) {
clearTimeout($(this).data('timeout'));
$(this).data('timeout', setTimeout(function(){
// your code
}, 200));
});
演示:http: //jsfiddle.net/4b7y5/