javascript - Jquery Draggable 占位符拖放

标签 javascript jquery html css jquery-ui

如何让 placeholder 元素 在被拖动时触发事件?我试过让它在拖动开始时可放下,但它仍然没有触发事件。

这是一个例子 fiddle .

HTML-

<div class="draggable">
</div>
<div  class="draggable">
</div>
<div  class="draggable">
</div>
<div  class="draggable">
</div>

CSS-

.draggable{
   width: 50px;
   height: 50px;
   background-color: #000;
   border: 1px solid #fff;
}
.highlight{
    box-shadow: inset 0px 0px 10px 5px #fed700;
}

JQuery-

$(".draggable").draggable({
   helper: "clone",
   revert: "invalid"
}).droppable();

$(".draggable").on("dropover", function() {
   $(this).addClass("highlight");
});
$(".draggable").on("dropout", function (){
   $(this).removeClass("highlight");
});

当拖动到被拖动的元素上时,它不会改变。我确定这是默认功能,但我想显示为红色 X 之类的东西,而不是默认的什么都没有。

提前致谢!

编辑 - 所以我想我让这有点困惑。因此,当您拖动一个元素时,它会在后面留下一个占位符。我只想让占位符在您再次拖动它时触发 dropover 事件。

最佳答案

拖动开始时保存被拖动的元素: http://jsfiddle.net/e70bvst1/10/ 编辑,在这个 fiddle 中它从一开始就是红色的: http://jsfiddle.net/e70bvst1/13/

var currentDraggedElement;
$(".draggable").draggable({
start: function(e){
    currentDraggedElement = e.target;
    $(currentDraggedElement).addClass("red");
},
stop: function(e){
    $(currentDraggedElement).removeClass("red");
},
helper: "clone",
    revert: "invalid"
}).droppable();

$(".draggable").on("dropover", function(e) {
    $(this).addClass("highlight");
});
$(".draggable").on("dropout", function (e){
    $(this).removeClass("highlight");
    currentDraggedElement = null;
});

希望这正是您所需要的。

关于javascript - Jquery Draggable 占位符拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32591931/

相关文章:

html - Div 位置内联 block

html - 仅在 CSS 中运行同步动画

javascript - 是否有可能导致 fetch 的 text() 函数抛出?

javascript - 使用 PHP(Codeigniter) 将变量从 Controller 传递到 javascript

javascript - 在 forEach 中等待 catch block 失败

javascript - Highchart 多个阈值颜色

javascript - 以编程方式插入 HTML 时,无法为 trix-editor 中的任何标签添加 Id 或 class 等属性

javascript - 如果 jquery 验证激活,如何在单选按钮中放置红色边框

javascript - 如果它没有类或 ID,是否可以通过其 href 获取链接?

javascript - 反转jquery中滑动div的循环