在某些情况下,需要使用keyup事件来监听键盘的输入以迅速作出回应。but打开输入法编辑中文情况下....
问题
在开启输入法的情况下,各浏览器表现不一
解决方案
使用一个计时器,当输入框处于聚焦(focus)状态时,每10秒执行一次回调函数
var time = setInterval(function, 1000); && clearInterval(time);//function可以执行多次var time = setTimeout(function, 1000); && clearTimeout(time); //function只执行一次
最终解决
$('#filter').bind('focus',filter_time);
/*每秒监听输入*/
filter_time = function(){
$(this).val('');/*清除数据*/
var time = setInterval(filter_staff_from_exist, 1000);/*每1秒执行一次人员筛选,time是停止本方法的参数*/
$(this).bind('blur',function(){
clearInterval(time); /*停止setInterval*/
});
};
/*筛选人员*/
filter_staff_from_exist = function(){
var filter_str = $('#filter').val();
$('.staff').each(function(key,group){
num = 0;
$(group).find('.staff_line').each(function(index,element){
str = $(element).attr('title');
if(str.indexOf(filter_str) < 0){
$(element).css('display','none');
$(element).find('input').addClass('hidden');
}
else{
$(element).css('display','block');
$(element).find('input').removeClass('hidden');
num++;
}
});
$(group).prev().find('.group_lable span').html('('+num+')');
});
}