我用JS写了一个可以上下移动select中内容的功能,内容以树型显示,移动父节点时,父节点下的子节点也跟着移动,问题出现了。
在IE6下没有问题,在IE7下移动多个节点时,移后的显示内容不对,把鼠标放到select上时,内容显示正确,一开始以为显示的慢,后来发现鼠标不放到select上就一直不会显示正确结果,这是什么原因呢?

解决方案 »

  1.   

    问题已经解决,谢谢大家关注。
    原因是IE6不用得到焦点就能交换。但Ie7必须得到焦点才能交换。所以在移动节点时出现了问题,等我整理一下在把解决方法传上来。
      

  2.   

    在IE6下直接点击按钮就可以交接
    <html>
    <script language="JavaScript" type="text/JavaScript">
    function change()
    {
     //IE7打开注掉的部分
     //document.all.selectName.options[1]..selected=true;
     document.all.selectName.options[1].swapNode(document.all.selectName.options[2]);
    }
    </script>
    <body>
      <select id = "selectName" multiple>
        <option value = "中国" >中国 </option>
        <option value = "美国" > 美国</option>
        <option value = "英国" >英国</option>
      </select>
      <input type="Button" name="change" onclick="change()" value="交换"> 
      </body>
    </html>
    //在IE7打开注掉的代码先让得到焦点就可以交换了,要不不好用,嘿嘿。
    //这只是一个小例子,我的工程代码东西太多了,主要是说明问题