用htc作一个支持HTML的tooltip 但是遇到了困难!!? 改成if (oDivLabel.contains(event.toElement)) return; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 同意楼上,对于这个element.document.body.appendChild(oDivLabel);也是不好的。应该直接这样:element.appendChild(oDivLabel);然后用相对element的定位。(这样event.toElement才有可能有oDivLabel的一份)而事件是这样判断的:function onmouseout(event){ if(element.contains(event.toElement))return; //..} 这个是个例子:<table><tr><td>-------------------<br>-------------------<br>-------------------<br>-------------------<br><tr><td>dasfd</td><td style="background-color:gray"><tr><td>daf</td><td><div id=move1 style="position:absolute;width:200px;height:200px;left:44px;top:55px;background-color:#e0e2e0"> <div id=move2 style="position:relative;width:100px;height:100px;left:30px;top:30px;background-color:blue"> <div id=move3 style="width:50px;height:50px;left:15px;top:15px;background-color:red"> <br><br> <span id=idspan MsgHTML="<span style="color:red">ttttttttttttttest</span>" style="behavior:url(test.htc);color:mediumblue;background-color:white" > 这里 </span> <button>def</button> </div> <br><br><button>abc</button> </div> <br><br> <button>001</button></div></td><td>dasfd</td></tr><tr><td>dsfa</td></tr></table><script>setInterval(UpdateMsgHTML,100);function UpdateMsgHTML(){ idspan.MsgHTML=new Date().getTime();}</script> <PUBLIC:COMPONENT><PUBLIC:PROPERTY NAME="MsgHTML" GET="_get_MsgHTML" PUT="_put_MsgHTML"/><PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="_onmouseover()" /><PUBLIC:ATTACH EVENT="onmouseout" ONEVENT="_onmouseout()" /></PUBLIC:COMPONENT><SCRIPT>var thediv=null;var MsgH="";function _get_MsgHTML(){ return MsgH;}function _put_MsgHTML(v){ MsgH=v; if(thediv) thediv.innerHTML=MsgH;}function _onmouseover(){ if(element.contains(event.fromElement))return; if(thediv)return; //assert(thediv==null); thediv=window.document.createElement("DIV"); with(thediv) { innerHTML=MsgH; } with(thediv.runtimeStyle) { position="absolute"; left=GetClientScrollX(element)+"px"; top=GetClientScrollY(element)+element.offsetHeight-1+"px"; width="100px"; overflowX="visible"; backgroundColor="infobackground"; color="infotext"; border="1px outset gray"; } element.appendChild(thediv);}function _onmouseout(){ if(element.contains(event.toElement))return; if(thediv);else return; thediv.removeNode(true); thediv=null; }function GetClientScrollX(e){ var v=0; do { v+=e.offsetLeft; }while(e=e.offsetElement); return v; }function GetClientScrollY(e){ var v=0; do { v+=e.offsetTop; }while(e=e.offsetElement); return v; }</SCRIPT> 新手 js 问题 搞了一天一夜了。 GridView72绝技 急:js树型多层展开和折叠的例子,多谢 防止重复提交 请教一个FCK的问题 我想有两个轮播效果 怎么循环这个轮播效果 而不用调用不同的ID [讨论]IE发现最新地址欺骗漏洞 这个怎么办呢~ 如何解决text对象中数据浮动问题? 请教大神,javascript里为什么不能把</script>放到字符串里!!!? 如果我的输入框只能输入数字,小写字母,下划线,其它都不能输入,应该怎么写?? 在HTC中使用另一个HTC的问题
element.document.body.appendChild(oDivLabel);
也是不好的。应该直接这样:
element.appendChild(oDivLabel);
然后用相对element的定位。
(这样event.toElement才有可能有oDivLabel的一份)而事件是这样判断的:
function onmouseout(event)
{
if(element.contains(event.toElement))return;
//..
}
<tr><td>-------------------<br>-------------------<br>-------------------<br>-------------------<br>
<tr><td>dasfd</td><td style="background-color:gray"><tr><td>daf</td><td>
<div id=move1 style="position:absolute;width:200px;height:200px;left:44px;top:55px;background-color:#e0e2e0"> <div id=move2 style="position:relative;width:100px;height:100px;left:30px;top:30px;background-color:blue">
<div id=move3 style="width:50px;height:50px;left:15px;top:15px;background-color:red">
<br><br>
<span id=idspan
MsgHTML="<span style="color:red">ttttttttttttttest</span>"
style="behavior:url(test.htc);color:mediumblue;background-color:white"
>
这里
</span>
<button>def</button>
</div> <br><br><button>abc</button>
</div>
<br><br>
<button>001</button>
</div>
</td><td>dasfd</td></tr>
<tr><td>dsfa</td></tr></table><script>setInterval(UpdateMsgHTML,100);
function UpdateMsgHTML()
{
idspan.MsgHTML=new Date().getTime();
}</script>
<PUBLIC:PROPERTY NAME="MsgHTML" GET="_get_MsgHTML" PUT="_put_MsgHTML"/>
<PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="_onmouseover()" />
<PUBLIC:ATTACH EVENT="onmouseout" ONEVENT="_onmouseout()" />
</PUBLIC:COMPONENT>
<SCRIPT>var thediv=null;
var MsgH="";function _get_MsgHTML()
{
return MsgH;
}
function _put_MsgHTML(v)
{
MsgH=v;
if(thediv)
thediv.innerHTML=MsgH;
}function _onmouseover()
{
if(element.contains(event.fromElement))return;
if(thediv)return; //assert(thediv==null);
thediv=window.document.createElement("DIV");
with(thediv)
{
innerHTML=MsgH;
}
with(thediv.runtimeStyle)
{
position="absolute";
left=GetClientScrollX(element)+"px";
top=GetClientScrollY(element)+element.offsetHeight-1+"px";
width="100px";
overflowX="visible";
backgroundColor="infobackground";
color="infotext";
border="1px outset gray";
}
element.appendChild(thediv);
}
function _onmouseout()
{
if(element.contains(event.toElement))return;
if(thediv);else return; thediv.removeNode(true);
thediv=null;
}function GetClientScrollX(e)
{
var v=0; do
{
v+=e.offsetLeft;
}while(e=e.offsetElement);
return v;
}
function GetClientScrollY(e)
{
var v=0; do
{
v+=e.offsetTop;
}while(e=e.offsetElement);
return v;
}
</SCRIPT>