jQuery 可放置鼠标悬停传播

标签 jquery jquery-ui drag-and-drop draggable jquery-ui-draggable

我有两个 Div,它们都定义为可放置项目并且可以接受相同的项目。 两个 Div 都是绝对定位的,有时它们可​​以彼此重叠,在这种情况下,当我将一个元素拖动到顶部 Div 上时,似乎隐藏的 Div 接受了拖放。

我尝试将 event.stopPropagation() 放入 Div mouseover、mouseleave、droppable.over 事件中,但它什么也没做。

相关代码为:

$('.myDraggable').draggable({
    start: function (event, ui) { },
    distance: 20,
    revert: 'invalid',
    appendTo: '.myStage',
    scroll: false,
    helper: 'clone',
    zIndex: 999999
});

$('.myDroppable').droppable({
    over: function (event, ui) { },
    drop: function (event, ui) { },
    activate: function (event, ui) { },
    deactivate: function (event, ui) { },
    accept: '.myDraggable'
});

最佳答案

我可以针对您的问题提出一些解决方法。当鼠标悬停在元素上时,使用“live”或“delegate”使元素可拖动。下面的代码不是 D&D,但您可以通过将添加 css 类替换为使对象可拖动来轻松将其移植到您的项目中。

   <div id='mouse-over-wrapper'>
    <div id='div1' style="position:absolute; width:500px; height:500px; top:100px; left:50px; z-index:100;">
    </div>
    <div id='div2' style="position:absolute; width:500px; height:500px; top:300px; left:250px; z-index:100;">
    </div>
</div>
<script type="text/javascript">
    $(document).ready(function () {
        $('#mouse-over-wrapper div').live('mouseover', function () {
            $(this).addClass('blue');
        });
        $('#mouse-over-wrapper div').live('mouseout', function () {
            $(this).removeClass('blue');
        });
    });
</script>

关于jQuery 可放置鼠标悬停传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9009778/

相关文章:

jquery - 如何在Tweenmax中连续动画?

html - 输入获得焦点到另一个输入

HTML 未显示在 Firefox 和 IE 上

jquery - Jquery UI 的选项卡内容中的分页

javascript - jQuery Datepicker 打开时的 knockout 更改会破坏 Datepicker

macos - cocoa 拖放信息

java - 将文件从操作系统拖放到 Java 应用程序 (Swing)

javascript - toFixed 不工作

javascript - 将 4 行 Jquery 转换为 Mootools

jquery - 使用 jQuery 设置 HTML5 音频的属性音量不起作用