javascript - 可拖动 div 内的图像在拖动时阻碍了我的拖放

标签 javascript mootools mootools-events

客户要求整个 div 是可拖动的,该 div 包含一些文本和图像。我将 div 转换为 <li>标签并使用 Mootools 可拖动的好东西来使其全部正常工作。直到客户端单击图像并开始在 IE 中拖动它。然后浏览器认为你想要拖动图像并忽略父li的拖放事件。

关于如何阻止图像被拖动的任何线索?或者至少触发 parent 的 onmousedown事件?

下面是一些 HTML 示例:

<ul class="asset_list">
  <li id="1"><img src="test1.jpg" />Blah blah blah</li>
  <li id="2"><img src="test2.jpg" />Blah blah blah</li>
  <li id="3"><img src="test3.jpg" />Blah blah blah</li>
</ul>

这是我用来进行拖放操作的一些 JS:

// Set up drap and drop
$$( 'ul.asset_list li' ).each( function( item ){
 item.removeEvents();
 item.addEvent('mousedown', function(e) {
  e = new Event(e).stop();

  // Create our clone of the asset for dragging
  var clone = this.clone( true, true );
  clone.removeEvents();
  clone.addClass( "dragging" );
  clone.setStyles(this.getCoordinates()); // this returns an object with left/top/bottom/right, so its perfect

  var drag = clone.makeDraggable({
    droppables: [TrailStream.playlist],
    precalculate: true,
    revert: true,
   }
  }); // this returns the dragged element

  drag.start(e); // start the event manual
 });
});

最佳答案

5年后,我遇到了同样的问题,我发现这对我来说是最好的解决方案:

'dragleave' of parent element fires when dragging over children elements

就您而言:

.asset_list * {
    pointer-events: none;
}

简单有效:)

关于javascript - 可拖动 div 内的图像在拖动时阻碍了我的拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1928261/

相关文章:

Javascript 返回与预期不同的输出

javascript - Quickbox 与 MooTools 1.4

javascript - 从另一个外部函数调用 mootools 类方法

javascript - 如何使用 MooTools 以编程方式单击元素?

javascript - 将事件添加到 Google Maps API InfoWindow 内的元素

javascript - 如何用Ember形成下表?

javascript - 获取文本框中所有选定复选框的值

javascript - 主动 AJAX 请求

javascript - 由于淡入淡出/补间错误,Fancy Upload 不适用于 mootools 1.4.1

javascript - 在requirejs中使用全局变量