Jquery:模糊功能不适用于Div标签

时间:2012-01-24 09:22:19

标签: javascript jquery

我正在尝试为我当前的项目创建一个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之外时,线路警报("失去焦点")不起作用。有谁能建议解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以使用 mouseout

而不是模糊

$('#divRootAd').mouseout(function(event){
    alert("lose focus");
    clearDiv();
});

希望有所帮助