【发布时间】:2012-09-06 13:51:05
【问题描述】:
我正在尝试构建一个拖放系统,可以将图像拖放到特定的 div 中。因为图像在滚动条中,所以我必须对可拖动对象使用克隆。我遇到的问题是,当我将图像拖到 div 上时,似乎没有触发“drop”事件。我在网上搜索过,但没有找到可行的解决方案。
我有以下几点:
$( "#droppable" ).droppable({
activeClass: "ui-state-highlight",
drop: function( event, ui ) {
alert('ok');
}
});
$( ".draggable" ).draggable({
helper: "clone",
scroll: false
});
这样当 .draggable 元素被放到#droppable div 上时,我应该会看到一个警报。 droppable 确实获得了 activeClass,所以它已经走了那么远,但是当我放下图像时,什么都没有发生 - 它只是消失了。
html 是:
对于 droppable(它在一个可滚动的 div 中,使用 jQuery ui 可滚动):
<div class="scrollable" id="scrollable">
<div id="scrollable-items" class="items">
<div id="scrollerDiv_1">
<div>
<div id="droppable" class="droppable ui-droppable">
<div class="ImageArea"></div>
<div class="CaptionArea">Drag a photo or video into the box above to create a new frame</div>
</div>
</div>
</div>
</div>
</div>
对于可拖动的图像:
<div id="EditMain">
<div id="libraryMain">
<div id="my-asset-list" class="assetList">
<div class="listItem draggable scroll-content-item ui-draggable">
<span class="assetItem">
<img src="xxx"/>
</span>
</div>
<div class="listItem draggable scroll-content-item ui-draggable">
<span class="assetItem">
<img src="xxx"/>
</span>
</div>
<div class="listItem draggable scroll-content-item ui-draggable">
<span class="assetItem">
<img src="xxx"/>
</span>
</div>
</div>
</div>
</div>
【问题讨论】:
-
@Sharon,似乎还可以:jsfiddle.net/baQL9 您是否将 js 代码放在文档就绪块中,例如
$(function(){ ... });? -
谢谢。 html 是动态生成的,jquery 在创建后应用。这就是我添加“activeClass:”ui-state-highlight”部分的部分原因,以便我可以看到 jquery 正在被触发。它似乎确实达到了这一点,因为课程添加好了。它似乎并没有触发“drop”部分。
标签: jquery jquery-ui jquery-ui-draggable jquery-tools