前一陣子公司項目里用到了textarea的placeholder的屬性,然后不兼容ie8ie9,去公司插件庫里一看,妹的,只有input的兼容封裝,欲哭無淚,然后在網上又查了好多,大部分都是寫input的placeholder的兼容性,我刀呢?!?!?!
沒法子,又不能不管,可是我又不會封裝插件的能力實在是有限啊,所以,就模仿了input的元素替換的方法,最后用了一個很笨的方法給弄出來了,請各路大神不要嘲笑,哈哈。
一、html部分:
<textarea class = "research_description" maxlength="200" placeholder="最多可輸入200字"></textarea>
<span class = "ieTextarea ieTextHide">最多可輸入200字</span><--一個替換placeholder的元素span-->
二、less部分:
樣式具體的我就不寫了,只寫用到的這兩個樣式:
.ieTextarea{
color:#999!important;
position:absolute;
top:18px;
left:30px;
}
.ieTextHide{
display: none;
}
三、js
if(navigator.userAgent.indexOf("MSIE 8.0")>0 && ! window.innerWidth){
var $textarea = $('textarea');//獲取元素集合
$.each($textarea,function(i,el){//遍歷
if($(el).text() == ''){
$(el).siblings('.ieTextarea').removeClass('ieTextHide');
}else{
$(el).siblings('.ieTextarea').addClass('ieTextHide');
};
});
$('.ieTextarea').off('focus').focus(function(){//span聚焦的時候
$(this).addClass('ieTextHide');
$(this).siblings('textarea').focus();//模仿textarea聚焦
});
$('textarea').off('blur').blur(function(){
if($(this).text() == ""){
$(this).siblings('.ieTextarea').removeClass('ieTextHide');//失焦的時候讓模擬span顯示
}
});
$('textarea').off('focus').focus(function(){
$(this).siblings('.ieTextarea').addClass('ieTextHide');
});
}