日期:2014-05-18  浏览次数:20413 次

想做个用户控件,焦点在<div>外就消失
.net 2.0 ,想做个用户控件,里面有个TreeView,点击按钮弹出这个树,
要求:当鼠标点击这个用户控件之外,树消失。(点击树的CheckBox不消失)

应该用到的是js的脚本,TreeView是服务器控件,该怎么做?

------解决方案--------------------
1 判断鼠标位置,是否在控件内部;
2 触发点击事件;
------解决方案--------------------
clientX,clientY
网上找个确定鼠标位置的js代码看下就知道了
------解决方案--------------------
<div>的 onmouseover 和 onmouseout 事件里控制 是否显示就可以了。
------解决方案--------------------
不用知道div的位置。

如果div有id的话,判断点击事件是否在div内就可以了。

HTML code
<html>
<head>
<style type="text/css">
<!--
.mainBox {
float: left;
height: 300px;
width: 100%;
}
.subBox1 {
float: left;
height: 300px;
width: 50%;
background-color:blue;
}.subBox2 {
padding: 0px;
float: left;
height: 300px;
width: 50%;
background-color:black;
}.subBox4 {
float: left;
height: 300px;
width: 50%;
background-color:red;
}.subBox3 {
float: left;
height: 300px;
width: 50%;
background-color:green;
}
-->
</style>
<script>
<!--
// 仅适合IE
document.attachEvent("onclick", function(){ _Foo("subBox1") } );
_Foo = function(sDivId){
    var oTarget = window.event.srcElement;
    if( sDivId == oTarget.id )
        alert("should do something");
    else
        alert("do nothing");
}
-->
</script>
</head>
<body>
<div class="mainBox">
<div id="subBox1" class="subBox1">
</div>
<div id="subBox2" class="subBox2">
</div>
</div>
<div class="mainBox">
<div id="subBox3" class="subBox3">
</div>
<div id="subBox4" class="subBox4">
</div>
</div>
</div>
</body>
</html>