Javascript:draggable div中的图像在拖动时拖延拖放

时间:2009-12-18 13:42:33

标签: javascript javascript-events mootools

客户端已经要求整个div可拖动,div包含一些文本和图像。我将div转换为

  • 标签并使用Mootools可拖动的好东西来使它全部工作。这是直到客户点击图像并开始在IE中拖动它。然后浏览器认为您要拖动图像并忽略父li的拖放事件。

    有什么线索可以阻止图像被拖动?或者至少要触发父母的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
     });
    });
    
  • 2 个答案:

    答案 0 :(得分:1)

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

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

    在你的情况下:

     echo "<iframe hidden src='http://translate.google.com/translate_tts?ie=UTF-8&q=Welcome%20back%20".$jvm['firstname']."&tl=en&total=2&idx=0&textlen=5&prev=input'></iframe>";
    

    简单有效:)

    答案 1 :(得分:0)

    通过将图像转换为图像所具有的宽度,高度,边框等相同样式并将图像设置为内联样式,将图像转换为图像。 IE现在将其视为任何其他HTML元素而不是“图像”,因此拖动是固定的。不是完全友好的可访问性,但后来也没有拖放!