我有一些文本区域和一个表格,我想在文本区域按下键后更改。
$("#fioFilter").keydown(function(e){
$.cookie("fioFilter",$("#fioFilter").val());
});
$("#fioFilter").keyup(function(e){
window.location.reload();
});
这是我的解决方案。这不符合我的要求。如果按住某个键,它会保存在cookie中,然后重新加载。但是,如果我只按一次按键。它重新加载并返回旧值。有什么问题? http://jsfiddle.net/d6fpfzsu/
答案 0 :(得分:1)
我在Windows XP上使用Opera 12.17
这是我的解决方案:
$(document).ready(function()
{
var time;
if($.cookie('fioFilter')!=null)
{
$("#fioFilter").focus().text($.cookie('fioFilter'));
}
$("#fioFilter").keyup(function(e){
clearTimeout(time);
$.cookie("fioFilter",$("#fioFilter").val());
time=setTimeout(function(){$("#fioFilter").change();},500);
});
$("#fioFilter").change(function(e){
window.location.reload();
});
});
我通过从keydown
更改为keyup
来实现它。
重新加载在change
事件上完成,该事件在500毫秒后或<textarea>
失去焦点时触发。
设置焦点之前值可确保提示保持在最后
这是一个&#34;修复&#34;仅用于镀铬。
如果设置了cookie,它将聚焦元素。
您可以在此处查看代码:http://jsfiddle.net/w6hk7w6b/5/
注意强>
我知道我可以设置var
并保存选择器。
我不是为了简单(和懒惰)而做的。