【问题标题】:In jquery draggable modal window how to prevent drag when scroll is done on table within draggable在 jquery 可拖动模式窗口中,如何在可拖动的表格上完成滚动时防止拖动
【发布时间】:2011-08-25 02:59:48
【问题描述】:

我有可拖动的 jquery 模态窗口。窗口内有一个表,其溢出-y 设置为 true。当我滚动表格时,窗口被拖动 - 如何防止拖动滚动操作。这是示例代码。

 <div id="container">
<table style="overflow-y:auto;"> </table>
</div>

$('#container').draggable();

在表格上的滚动事件中,如何防止在窗口上拖动?有人可以帮忙吗?

【问题讨论】:

    标签: jquery scroll draggable modal-dialog


    【解决方案1】:

    使用 jQueryUI 对话框。我的对话框中有可滚动的内容,效果很好。

    http://jqueryui.com/demos/dialog/

    编辑

    但是,可能是因为您在对话框中的任意位置检查鼠标,然后触发移动。

    您需要确保拖动事件仅在对话框标题上触发。

     <div id="container">
     <div style=""height:30px" id="title">this is the title</div>
    <table style="overflow-y:auto;"> </table>
    </div>
    
    $('#title').click(function(){$('#container').draggable();})
    

    编辑 2

    $("#container").click(
      function(){
        if ($(this).tagName == "div")
          $(this).draggable();
      }
    );
    

    未经测试,但意图应明确

    【讨论】:

    • 谢谢格雷格斯。我可以通过将拖动限制为仅在标题上触发来解决问题(使用可拖动的句柄选项)。但是我需要窗口可以从对话框的任何地方拖动,除非在表格上进行滚动操作。有什么建议吗?
    • 第一次编辑时,我只能从标题窗口拖动。如何从窗口中的任何位置拖动(除了在表格上滚动?)
    【解决方案2】:

    使用 jQuery UI 可拖动的 cancel 属性

    <div id="container">
        <table style="overflow-y:auto;" id="tableID"> </table>
    </div>
    
    $(".container").draggable({
        cancel : ".tableID"
    });
    

    【讨论】:

      猜你喜欢
      • 2013-11-20
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多