使用JQuery,当元素都具有相同的ID时,我试图使多个元素可拖动。可以使用JQuery做到这一点吗?
(这里有两个id为“draggable”的div,我想让它们都可以拖动。)
相关代码位于:http://jsfiddle.net/zcJwu/
<!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; }
</style>
<script>
$(function() {
$( "#draggable" ).draggable();
});
</script>
</head>
<body>
<div id="draggable" class="ui-widget-content">
<p>Drag me around</p>
</div>
<div id="draggable" class="ui-widget-content">
<p>Drag me around</p>
</div>
</body>
</html>
答案 0 :(得分:9)
ID 应该是唯一的..
如果您提供重复的 ID 并将其用作选择器,则会始终选择遇到的第一个元素。So it will never work.
请尝试使用类。
您可以将名为draggable
的班级提供给您想要拖动的所有元素。
$( ".draggable" ).draggable();
<强> Check Fiddle 强>
答案 1 :(得分:5)
你必须使用一个班级。 ID应该只使用一次。
答案 2 :(得分:2)
您的标记无效,因为ID必须是唯一的,但您可以使用此功能强制使用它(不推荐。):
$("[id=draggable]").draggable()
要选择具有可拖动类的所有元素,请按照与css样式表相同的方式进行操作。
$(".draggable").draggable();
jQuery选择器几乎完全模仿css选择器样式。如果您知道如何使用CSS选择元素,那么您就知道如何使用jQuery选择元素。
答案 3 :(得分:2)
您应该使用classees,而不是复制ID。
<style>
.draggable { width: 150px; height: 150px; padding: 0.5em; }
</style>
<script>
$(function() {
$( ".draggable" ).draggable();
});
</script>
<div id="draggable1" class="ui-widget-content draggable">
<p>Drag me around</p>
</div>
<div id="draggable2" class="ui-widget-content draggable">
<p>Drag me around</p>
</div>
检查更新的小提琴 http://jsfiddle.net/zcJwu/2/