Chinaunix

标题: 求给树动态添加节点的弹出框的实现 [打印本页]

作者: tedli    时间: 2008-02-02 17:40
标题: 求给树动态添加节点的弹出框的实现
最终的效果如附件的图

1.jpg (12.09 KB, 下载次数: 28)

1.jpg

2.jpg (20.34 KB, 下载次数: 26)

2.jpg

作者: tedli    时间: 2008-02-03 16:35
以下代码可以在ie中实现,但是firefox中不行

  1. <script>
  2. ......
  3. function add(domainid)
  4. {
  5.     document.getElementsByName("newip_"+domainid)[0].value="";
  6.    
  7.     var objtmp=document.getElementById("div_"+domainid)

  8.         with(objtmp.style)
  9.         {
  10.             mX=event.x?event.x:event.pageX;
  11.             alert(1);
  12.                 left = (event.clientX  +10+ document.body.scrollLeft) + "px";
  13.                 top = (event.clientY +5+ document.body.scrollTop) + "px";
  14.                 display = "";
  15.         }
  16.     document.getElementsByName("newip_"+domainid)[0].focus();       
  17. }

  18. </script>
  19. ......
  20.            <td width="77"><span style="display: "><a href="#" onclick="add('685');return false;"><font color="#7899DC">添加新IP</font></a></span></td>
  21.             <td width="4%" align="right"><a href="#" onclick="edit(this,0,685,'1.1.1.1');return false;">编辑</a></td>
  22.             <td width="4%" align="right"><a href="#" onclick="del(this,0,685);return false;">删除</a></td>
  23.         </tr>
  24.         </table>


  25.         <div style="position:absolute; display:none; border: 1px solid black; background-color:#F7F7F7;" id="div_685">
  26.           <table>
  27.             <tr><td colspan="2">
  28.               <input type="text" name="newip_685" onkeydown="if (event.keyCode == 13) {addipsub(651);}">
  29.             </td></tr>
  30.             <tr><td align="center">
  31.                 <input type="button" value="确定" onclick="addipsub(685);"></td><td align="center"><input type="button" value="取消" onclick="caladd('685');">
  32.             </td></tr>
  33.          </table>
  34.        </div>
复制代码

google发现            mX=event.x?event.x:event.pageX;
这个实现不了
作者: 郁闷RMB    时间: 2008-02-03 16:40
在ie和firefox厦门可以统一这样写
function add(domainid,event)
{
    event=event || window.event;
    .......
    .......
}

忘记说了..错误不在event.x?event.x:event.pageX;上面,他它也是为了兼容ie和firefox,选择用event.x还是event.pagex;两者效果一样的.只是ie不支持event.pagex;
firefox下面不能用只是在它的环境下event对象没声明正确

[ 本帖最后由 郁闷RMB 于 2008-2-3 16:46 编辑 ]
作者: tedli    时间: 2008-02-04 12:51
谢谢楼上的提醒,之前也google过出来要先声明event,但是不知道这么调用这个函数,试过
onclick="add('685');
onclick="add('685',this);
onclick="add('685',);
都不行,今天随便试试
onclick="add('685',event);
可以了。
谢谢哈^_^




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2