1

我创建了以下 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>

只有第一个divwithid "drag-item"是可拖动的,但其他的不是。我希望它们都是可拖动的。我知道这可以通过为每个对象分配一个不同的 来完成id,但我宁愿只声明一个id允许所有对象具有id可拖动功能的对象。我怎么能做到这一点?

4

3 回答 3

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的。

于 2012-08-16T21:14:59.560 回答
5

你不能像那样复制 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
});
于 2012-08-16T21:15:33.770 回答
5

如果您可以随意更改 HTML,则可以使用 aclass而不是id.

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

但是,如果您不能随意更改 HTML,则可以使用以下内容:

$(function(){
    $("[id=drag-item]").draggable();
});

与 不同的是#drag-item属性选择器将返回所有匹配的元素,而不仅仅是第一个。但请记住,具有多个相同元素id意味着您的HTML 无效

于 2012-08-16T21:19:46.533 回答