gpt4 book ai didi

javascript - jQuery 用户界面 : draggable on dragenter

转载 作者:行者123 更新时间:2023-11-30 08:52:22 24 4
gpt4 key购买 nike

我正在关注 this guide用于 jQuery 可拖动项。

我唯一想念的是 dragenterdragleave 事件,用于处理临时元素的 CSS。当可拖动元素在其上移动时,它只为可放置元素提供 hoverClass 属性。如果我们需要更改其他元素的 CSS 怎么办?

当前代码如下所示:

$(".part").draggable({
start: startDrag,
stop: stopDrag,
revert: true
});
$(".parts-action").droppable({
accept: '.part',
hoverClass: 'hovered',
drop: handleDrop
});

除此之外,我还需要这样的东西:

$(".wrapper").on('dragenter', function (e) {
$(this).next(".parts-action").show();
});

$(".wrapper").on('dragleave', function (e) {
$(this).next(".parts-action").hide();
});

但是当同时使用 draggable() 时它不起作用。

我也试过:

$(".part").draggable({
drag: handleDrag
})

function handleDrag(e, ui){
/* how to know if active draggable is on some element other than droppable? */
}

这非常令人困惑,因为它与可拖放相关!

最佳答案

我不是 100% 确定我完全理解你的问题和你需要做什么,但是如果你需要更改其他元素的 css,那么你可以使用 over out 事件处理程序。看看 jQueryUI documentation for Droppable .您基本上希望在 over 事件触发时添加一个类,并在 out 事件触发时删除该类。

JSFIDDLE DEMO

HTML

<div class="ui-widget-content part">
<p>Drag me to my target</p>
</div>

<div class="ui-widget-header parts-action">
<p>Droppable area 1</p>
</div>

<div class="ui-widget-header parts-action">
<p>Droppable area 2</p>
</div>

<div class="ui-widget-header parts-action">
<p>Droppable area 3</p>
</div>

CSS

.parts-action { width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px; }    
.part { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
.parts-action-highlight { background: red; }

jQuery

$(function() {
$( ".part" ).draggable();
$( ".parts-action" ).droppable({
accept: ".part",
hoverClass: "ui-state-active",
drop: function( event, ui ) {
$(this)
.addClass( "ui-state-highlight" )
.find( "p" )
.html( "Dropped!" );
},
over: function( event, ui ) {
$(this)
.siblings(".parts-action")
.addClass("parts-action-highlight");
},
out: function( event, ui ) {
$(this)
.siblings(".parts-action")
.removeClass("parts-action-highlight");
}
});
});

上面的大部分代码示例都取自 jQueryUI droppabe 示例,因此 ui-widget-XXX 类不是必需的/与您无关,只是为了突出效果。

只需将函数调用的主体替换为您需要采取的任何操作,例如

        over: function( event, ui ) {
$(this)
.siblings(".parts-action")
.hide();
},
out: function( event, ui ) {
$(this)
.siblings(".parts-action")
.show();

关于javascript - jQuery 用户界面 : draggable on dragenter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16765098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com