嗨,我已经设置了自动完成输入文本.我试图在点击btn和输入按键时触发重新打印表格的事件.btn点击工作正常,但输入键按下似乎在停止之前触发了几次(意味着表格闪烁)
$('body').bind('keypress', function(e) {
if(e.keyCode==13){
var str = $('#Filter').val();
$('#Table').fadeOut("slow").load('printShorts.server.php?Sortby=<?echo $sort;?>&dir=<?echo $direction;?>&filter='+encodeURIComponent(str)+'&usergroup=<?=$usergroup?>&no-cache=' + (new Date()).getTime() ).fadeIn("slow");
}
});
Run Code Online (Sandbox Code Playgroud)
它不会一直发生,并且在不同的浏览器中行为不同.
Ber*_*riz 13
keydown事件与html文本框结合使用将不足以防止多次触发它.您可以在keydown事件的jquery演示部分看到此行为:http://api.jquery.com/keydown/
一种可能的解决方案是使用事件处理程序"one"(请参阅http://api.jquery.com/one/).这确保了事件只被处理一次:
jQuery("#createNewProduct").one("keydown", function (e) {
//Do Stuff
});
Run Code Online (Sandbox Code Playgroud)
这是keypress事件的正确行为.只要键处于关闭状态,按键事件就会一直触发(就像在textarea中按下一些字符键时,字符被多次添加,这与按键有关).对于一次性操作条件,请根据您的要求使用按键或键入事件.按键和按键都只触发一次.它像:
{Key-Down} {Key-Press} {Key-Press} ..(as long as key is down).. {Key-Press} {Key-Up}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13723 次 |
| 最近记录: |