我正在尝试为我当前的项目创建一个Jquery Tree插件。在插件中,有3个组件:一个包含从树中选择的结果的文本框,一个包含树的div和一个显示div的按钮。它工作正常,除非我不能让它自动失去弹出div如果树失去焦点。
以下是创建div
的代码 createTree = function() {
$.getJSON(_options.jsonSrc, function(data) {
nDiv = document.createElement("div");
nDiv.id = "divRootAd";
$(nDiv).css('display', 'none');
jsonObj = data["treeJson"];
nUl = document.createElement("ul");
nUl.appendChild(createNode(jsonObj));
nDiv.appendChild(nUl);
$("body").append(nDiv);
//$(nDiv).focus();
repositionDiv();
});
};
repositionDiv = function() {
if ($('#divRootAd').is(':hidden')) {
// get the field position
var sf_pos = $("#txtAdVal").offset();
var sf_top = sf_pos.top;
var sf_left = sf_pos.left;
// get the field size
var sf_height = $("#txtAdVal").height();
// apply the css styles - optimized for Firefox
$("#divRootAd").css("position","absolute");
$("#divRootAd").css("left", sf_left);
$("#divRootAd").css("top", sf_top + sf_height + 5);
$('#divRootAd').show();
$('#divRootAd').blur(function(event){
alert("lose focus");
clearDiv();
});
} else {
clearDiv();
}
};
当我将鼠标移到div之外时,线路警报("失去焦点")不起作用。有谁能建议解决这个问题?
答案 0 :(得分:2)
您可以使用 mouseout
而不是模糊
$('#divRootAd').mouseout(function(event){
alert("lose focus");
clearDiv();
});
希望有所帮助