问题:只解决input事件初始化自动执行的问题,window10系统,自带ie11版本,用的input事件,实时监听input输入情况
思路:
1、通过对input框的placehodler的处理,增加input事件里的代码执行的一个判断条件;
2、原来是判断的input框为空显示全部,导致初始化后,如果选中了部分,但是几秒后就又显示了全部内容,因为自动执行了input事件里的代码;
3、所以现在就需要除了input为空外,多一个判断条件,让有输入或者input聚焦的时候才执行input事件里的代码
步骤:
1、对input框的placeholder进行处理,聚焦的时候让其为空,失焦的时候如果输入框没有输入就显示placehodler
2、如果placeholder为空,但是input框内容为空就显示全部,
3、placeholder不为空也就是失焦状态,如果有选中的,就显示选中部分,不执行input事件里的代码
1、input框的placehodler处理
//目录搜索框placeholder 解决ie下布局2/3选中某个目录,一会变为全部目录的问题
handlePlaceHolder:function () {
this.el.find('.searchNew #search-menu-button').focus((e)=>{
if ($(e.currentTarget).attr('placeholder')) {
$(e.currentTarget).attr('placeholder','')
}
})
this.el.find('.searchNew #search-menu-button').blur((e)=> {
if (!$(e.currentTarget).attr('placeholder')) {
let str = '搜索目录名称'
$(e.currentTarget).attr('placeholder', str)
}
})
}
2、input事件
{
event: 'input',
selector: '.searchNew #search-menu-button',
callback: _.debounce(function(context) {
if (!$(context).attr('placeholder')) {
this.actions.search(context.value);
}
}, 200)
},