2012-08-16 58 views
1

我已經創建瞭如下的jQuery代碼,以允許一個對象爲可拖動:允許用相同的id對象爲可拖動與jQuery

JavaScript的:

$(function(){ 
    $("#drag_item").draggable(); 
}); 

HTML:

<div id="drag-item">One</div> 
<div id="drag-item">Two</div> 
<div id="drag-item">Three</div> 

只有第一個divid"drag-item"是可拖動的,但其他的不是。我希望所有這些都是可拖動的。我明白這可以通過分配每個不同的id來完成,但我寧願聲明一個id,它允許具有該可拖動功能的所有對象都具有該id。我將如何能夠做到這一點?

+7

你不能重複這樣的ID。ID的ID應該是唯一的。使用類別選擇器 – 2012-08-16 21:14:49

+4

「具有相同ID的對象」< - 存在您的問題。同樣'drag_item'和'drag-item' – MrOBrian 2012-08-16 21:20:17

回答

5

你不能重複這樣的ID。ID的ID應該是唯一的。使用類選擇

HTML:

<div class="drag-item">One</div> 
<div class="drag-item">Two</div> 
<div class="drag-item">Three</div> 

JS:

$(function(){ 
    $(".drag-item").draggable(); //Edit: as MrOBrian pointed out 
}); 
+0

@KevinB感謝您的糾正 – 2012-08-16 21:19:55

+1

大家最初的回答都錯過了'_' /'-'問題:) – MrOBrian 2012-08-16 21:23:50

+1

@MrOBrian我的思想被重複的id炸燬。這是我的藉口。 – Kyle 2012-08-16 21:25:32

6
$(function(){ 
    $(".drag-item").draggable(); 
}); 

HTML:

<div class="drag-item">One</div> 
<div class="drag-item">Two</div> 
<div class="drag-item">Three</div> 

使用class,而不是id

這是無效html有重複id的。

+0

也需要與'drag_item'或'drag-item'一致# – MrOBrian 2012-08-16 21:22:07

+0

@MrOBrian,謝謝! – Kyle 2012-08-16 21:23:08

5

如果隨意更改HTML,您可以使用class而不是id

$(function(){ 
    $(".drag-item").draggable(); 
}); 
<div class="drag-item">One</div> 
<div class="drag-item">Two</div> 
<div class="drag-item">Three</div> 

但是,如果你不能隨意更改HTML,您可以使用以下命令:

​​

不像#drag-item,則attribute selector將返回所有匹配的元素,而不是隻是第一個。但請記住,具有相同的多個元素id意味着您有invalid HTML

+0

我的不好。謝謝,@Kyle :-) – PPvG 2012-08-16 21:21:28

+2

要再做一次:) – Kyle 2012-08-16 21:22:06

+0

Hehehe,複製粘貼錯字很容易。 :-P – PPvG 2012-08-16 21:23:16