嗨,我已经设置了自动完成输入文本.
我试图通过点击btn和输入按键来触发重新打印表格的事件. btn点击工作正常
但输入键按下似乎在停止之前触发了几次(意味着表格闪烁)
我试图通过点击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"); } });
它不会一直发生,并且在不同的浏览器中行为不同.
解决方法
keydown事件与html文本框结合使用将不足以防止多次触发它.您可以在keydown事件的jquery demo部分中看到此行为:
http://api.jquery.com/keydown/
一种可能的解决方案是使用事件处理程序“one”(参见http://api.jquery.com/one/).这确保了事件只被处理一次:
jQuery("#createNewProduct").one("keydown",function (e) { //Do Stuff });