html中的元素不可拖动,即使draggable=true

ax6ht2ek  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(576)

我有这个html:

  1. <h3 id="mainCategories" ondrop="drop0" draggable="true">Main categories</h3>
  2. <ul id="list">
  3. <li id="0" draggable="true">...</li>
  4. <li id="1" draggable="true">...</li>
  5. <li id="2" draggable="true">...</li>
  6. </ul>

使用列表中的元素进行拖放操作非常有效,而h3元素不起作用,如果我使用dragstart或dragover,chrome会显示一个警告符号。我怎样才能修好它?我很确定这是一个非常基本和愚蠢的问题,但这就像我第三天使用html一样,所以我对它不是很有信心。谢谢你的帮助

x759pob2

x759pob21#

为了实现您的目标,您需要禁用元素的默认行为(不能删除)。您只需要使用事件的preventdefault属性定义一个防止这种行为的函数。
你可以在这里找到一个很好的例子
这是更新后的脚本

  1. function drop() {
  2. console.log("drop called")
  3. }
  4. function allowDrop(event) {
  5. event.preventDefault();
  6. }
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <script src="script.js"></script>
  8. <title>Document</title>
  9. </head>
  10. <body>
  11. <h3 id="mainCategories" ondrop="drop()" ondragover="allowDrop(event)" draggable="true">Main categories</h3>
  12. <ul id="list">
  13. <li id="0" draggable="true">...</li>
  14. <li id="1" draggable="true">...</li>
  15. <li id="2" draggable="true">...</li>
  16. </ul>
  17. </body>
  18. </html>
展开查看全部

相关问题