JQuery Draggable具有相同ID的多个项目无法正常工作

时间:2012-12-21 18:48:06

标签: jquery jquery-ui drag-and-drop draggable

您是否需要为每个可拖动元素指定不同的名称?我有3个图像,我希望能够拖动它们。我试图给他们所有相同的ID,但它失败了。我将拥有可变数量的图像,所以我需要它们都具有相同的ID。这里出了什么问题?

这是我的代码:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Draggable - Default functionality</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<style>
#draggable { width: 150px; height: 150px; padding: 0.5em; border:1px solid black;}
</style>
<script>
$(document).ready(function(){
  $("#draggable").draggable();
});
</script>
</head>
<body>
<img id="draggable" src="small/Koala.jpg"/>
<img id="draggable" src="small/Desert.jpg"/>
<img id="draggable" src="small/Tulips.jpg"/>
</body>
</html>

现在它不会克隆 - 我想克隆图像并将克隆放入可放置框中。

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Wall Builder</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css" />
    <style>
        .draggable { width: 85px; height: 85px; padding: 0.5em; border:1px solid black;}
        .droppable { width: 150px; height: 150px; padding: 0.5em; border:1px solid black;}
        </style>
    <script>
    $(document).ready(function() {
      $(".draggable").draggable({
        revert: "invalid"
       ,helper: 'clone'
      });
      $( ".droppable" ).droppable({
        accept: "draggable"
      });
    });
    </script>
</head>
<body>
<img class="draggable" id="1" src="small/Koala.jpg"/>
<img class="draggable" id="2" src="small/Desert.jpg"/>
<img class="draggable" id="3" src="small/Tulips.jpg"/>
<div class="droppable" id="d1"></div>
<div class="droppable" id="d2"></div>
<div class="droppable" id="d3"></div>
<div class="droppable" id="d4"></div>
<div class="droppable" id="d5"></div>

</body>
</html>

1 个答案:

答案 0 :(得分:2)

您需要为它们提供不同的ID,然后按类选择。 id的要点是不同的,如果有重复,jQuery将只选择它找到的第一个。

类似的东西:

<script>
$(document).ready(function(){
  $(".draggable").draggable();
});
</script>
</head>
<body>
<img class="draggable" src="small/Koala.jpg"/>
<img class="draggable" src="small/Desert.jpg"/>
<img class="draggable" src="small/Tulips.jpg"/>
</body>
</html>

(听起来您可能想要阅读the difference between ids and classes