【问题标题】:jQuery UI Draggable, Sortable - Disallow dragging elementjQuery UI Draggable, Sortable - 禁止拖动元素
【发布时间】:2014-01-04 13:44:53
【问题描述】:

这是我正在使用的脚本:

    $(".nav .row").draggable({
    connectToSortable: ".demo",
    helper: "clone",
    handle: ".drag",
    drag: function (e, t) {
        t.helper.width(400)
    },
    stop: function (e, t) {
        $(".demo .column").sortable({
            opacity: .35,
            connectWith: ".column"
        })
    }
});

基本上它的作用是允许拖动新行并允许在这些行内的列内拖动元素。

这是一个示例输出:

<div class='demo'>
     <div class='row'>
          <div class='column'>
          </div>
     </div>
</div>

它的问题是它允许在该列类中拖动另一行,我想防止这种情况发生,这就是发生的情况:

<div class='demo'>
     <div class='row'>
          <div class='column'>
               <div class='row'>
                    <div class='column'>
                    </div>
               </div>
          </div>
     </div>
</div>

谁能给我一些建议,我可以如何防止这种情况发生?

【问题讨论】:

  • 你能创建一个小提琴吗?您基本上需要做的是定义什么是可放置的(如果需要,可以按类),以及当某些东西被移动到它在其行尾的位置时,它会脱离可放置类

标签: javascript jquery jquery-ui draggable jquery-ui-sortable


【解决方案1】:

这是因为$(".nav .row") 在导航容器中选择了所有具有.row 类的元素。您可以添加另一个类名来定位特定行,例如:

<div class='demo'>
     <div class='row dragabble'>
          <div class='column'>
          </div>
     </div>
</div>

$(".nav .draggable").draggable({
    connectToSortable: ".demo",
    helper: "clone",
    handle: ".drag",
    drag: function (e, t) {
        t.helper.width(400)
    },
    stop: function (e, t) {
        $(".demo .column").sortable({
            opacity: .35,
            connectWith: ".column"
        })
    }
});

【讨论】:

  • 问题是不仅有一行可用,还有无限数量的可用行,理想情况下它们都在 .demo 下而不是在 .column 内。所以在这里添加课程对我没有帮助。
  • 您可以将“可拖动”类应用于无限数量的行,这将只针对那些行并跳过没有“可拖动”类的行。如果要定位 'column' div 中的行,则将 jQuery 选择器更改为 '$(".column .draggable")'。 HTML 看起来像这样:'
    '
  • 根据解释的问题“问题在于它允许在该列类中拖动另一行,我想防止这种情况发生,这就是发生的情况:”托马斯是正确的。
猜你喜欢
  • 1970-01-01
  • 2011-05-27
  • 2011-09-11
  • 1970-01-01
  • 2010-10-09
  • 1970-01-01
  • 2020-07-19
  • 2013-05-29
  • 1970-01-01
相关资源
最近更新 更多