使用HTML5拖放列表元素

时间:2015-06-29 20:26:28

标签: javascript jquery html html5

我有HTML:

 <li class='has-sub'><a href='#'>Registration</a>
            <ul ondragstart="drag(event)" draggable="true">
               <li><a href='1'>Register for Classes</a></li>
               <li><a href='2'>Retake a Course (Academic Forgiveness)</a></li>
               <li><a href='3'>View Your Holds</a></li>

等等。这是一个显示一些链接的菜单。我还有另一个菜单,允许用户将“喜欢的链接”放入其中:

 <div id="myFavorites" ondrop="drop(event)" ondragover="allowDrop(event)">
    <ul>
        <li class='has-sub'><a href='#'>My Favorites</a>
             <ul id="favoritesList">
                <li><a href='#'>Test1</a></li>
                <li><a href='#'>Test2</a></li>
                <li><a href='#'>Test3</a></li>
                <li><a href='#'>Test4</a></li>
             </ul>
         </li>
    </ul>   
</div>

我的javascript似乎是正确的:

function drop(ev) {
    //alert("Got here");
    ev.preventDefault();
    var data = ev.dataTransfer.getData("text");
    //var html = ev.dataTransfer.getData("text/html");

    document.getElementById('favoritesList').appendChild(document.getElementById(data).cloneNode(true));
//$("#favoritesList").append(document.getElementById(data));
}

但是,当我将顶部菜单拖到底部时,它不会将整个“li”元素附加到收藏夹,只会附加到其中的元素。我也尝试将ondragstart =“drag(event)”draggable =“true”添加到每个单独的“li”元素中,但它产生相同的结果。有什么建议吗?

0 个答案:

没有答案