需求:想在点击空白处时隐藏下拉树,于是想到了给存放节点树的div添加onblur事件,但是当我点击节点树的父节点时,没有展开节点而是走了onblur事件隐藏了整棵树,在其它浏览器可行,在ie中会使div丢掉焦点,请求解决办法。
代码:
//容器
'<td class="width-15 active"><input type="text" id="fpxmIn'+hanghao+'" name="fpxm'+hanghao+'" class="form-control required" value="" οnclick="showDiv('+hanghao+')" AUTOCOMPLETE="off"/>
<div id="fpxmB'+hanghao+'" tabindex="0" hidefocus="true" οnblur="moveout1('+hanghao+')" style="display: none;">
<div style="max-height: 150px;max-width: 150px;font-size:10px;overflow: scroll;position: absolute;border:1px solid #ccc;outline=0;" id="fpxmD'+hanghao+'" >
</div>
</div>
</td>';
//点击input时触发
function showDiv(hanghao){
getTree1(hanghao);
$("#"+"fpxmB"+hanghao).show();
$("#"+"fpxmB"+hanghao).focus();
}
//构建节点树
function getTree1(hanghao) {
hanghao = hanghao + "";
$.ajax({
url: "${ctx}/fybx/Fybx/tree", // 请求的URL 获取节点json数据
dataType: 'json',
data:{
"flag":'a'
},
type: "post",
success: function (result) {
var id = "fpxmD" + hanghao;
$("#"+id).treeview({//节点树
color: "#428bca",
showBorder: false,
showTags: true,
data: result,
nodeIcon: 'glyphicon glyphicon-globe',
emptyIcon: '',
level:1,
showCheckbox: false,
multiSelect: false,
onNodeSelected: function (event, data) {
$("#"+"fpxmIn" + hanghao).val(data.name);
var a = $("#"+"fpxmIn"+hanghao).val();
var b = $("#"+"bxxmIn"+hanghao).val();
var c = $("#"+"cdbmIn"+hanghao).val();
var ssgs = $("#ssgsid").val();
if(a!=''&&b!=''&&c!=''){
$.ajax({
url: "${ctx}/fybx/Fybx/getysyeandspr", // 请求的URL 获取所属公司
dataType: 'json',
data:{
"ssgs":ssgs,
"fpxm":a
},
type: "post",
success: function (result) {
if(result.success){
var s = result.msg;
var cto = eval("("+s+")");
if(cto != 'null' && cto != null && cto != ''){
$("#"+"ysye"+hanghao).val(cto.ysye);
$("#"+"spr"+hanghao).val(cto.spr);
$("#"+"spyj"+hanghao).val(cto.spyj);
$("#"+"spjg"+hanghao).val(cto.spjg);
$("#"+"spsj"+hanghao).val(cto.spsj);
}else{
//jp.error();
$("#"+"ysye"+hanghao).val("0.0");
console.log($("#"+"ysye"+hanghao).val());
}
}
}
});
}
hideDIV(hanghao);
}
});
}
});
}
//隐藏节点树
function hideDIV(hanghao) {
$("#"+"fpxmB"+hanghao).hide();
}
//失去焦点事件
function moveout1(hanghao){
console.log("fpxmB失去了焦点");
setTimeout(
function(){
hideDIV(hanghao);
},
200)
}