jquery可拖动隐藏内容

Posted

技术标签:

【中文标题】jquery可拖动隐藏内容【英文标题】:jquery draggable with hidden content 【发布时间】:2012-11-08 16:48:08 【问题描述】:

我正在使用可拖动和可排序的列表在它们之间拖动和排序项目。但是,我拥有的项目是可滑动的(即单击它们会显示/隐藏内容)。当我将一个项目从一个列表拖到另一个列表时,滑动效果会丢失。此外,如果我有一个隐藏其子节点的项目,并且我将该项目拖动到另一个列表,则仅拖动该项目(没有任何子内容)。这是代码

http://jsbin.com/ujivav/1/edit

【问题讨论】:

【参考方案1】:

KHY 是正确的,但您也可以将 click 事件更改为使用 on,如下所示:

$('body').on('click', '.clicktohide',function()
    $(this).siblings().slideToggle('fast');
);

这是一个例子http://jsbin.com/ujivav/4/edit

【讨论】:

【参考方案2】:

我相信这是因为一旦加载了初始页面,就会发生与“click”事件的绑定。鉴于在您的示例中,在被拖动后,具有“.clicktohide”类的元素被复制,复制的元素不在“click”事件所绑定的选择中。

我猜你必须通过实现触发“停止”事件时调用的回调函数来将此事件绑定到拖动的元素上。

【讨论】:

我是 JS 和 jQuery 新手,能否请您更具体地了解一下“停止”事件。在这种情况下我会在哪里使用它?【参考方案3】:

看起来“克隆”并没有重新创建事件处理程序,只是重新创建了 DOM 元素。尝试在“停止”事件上手动复制。这样你就可以告诉它如何处理新的 DOM 元素。

【讨论】:

以上是关于jquery可拖动隐藏内容的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 和 jQuery UI:构建一个可拖动的无限网格,其中包含不同大小的内容 (imgs)

jQuery可拖动溢出隐藏?

从jQuery可拖动的句柄中排除项目

隐藏的 jQuery 可拖动包含溢出

jQuery可拖动隐藏与CSS3多列

jQuery将元素拖动到初始状态为隐藏的可排序列表中