4

我有一个拖动有一个习惯帮手。有时助手是克隆,有时是原始元素。

问题是,当helper是原始元素并且放在一个有效的可放下的东西上,它会被移除。到目前为止,我的解决方案如下:

在我的已丢弃(_D)我设置的回调ui.helper.dropped_on_dropable(ui.helper可丢弃)真的;

停止回调draggable,我检查该变量,然后。。。我该怎么办?

$('.my_draggable').traggable({停止:函数(e,ui){if(!ui.helper.dropped_on_dropable){/*我在这里做什么*/}},

这甚至是正确的方法吗?

0

3个答案

重置为默认值
2

好的,我找到了解决方案!它很丑陋,违反了“封装规则”,但至少它做到了。

记得这只适用于特殊情况! jQuery可以很好地处理自己的助手删除。在我的例子中,我有一个helper,它有时是原始元素,有时是克隆,所以在还原后删除helper并不总是合适的。

可拖动元素({停止:函数(e,ui){/*“dropped_on_droppable”是自定义的,并在我的自定义drop方法中设置“.moved_draggable”是自定义的,并在我的自定义拖动方法中设置,区分两种拖曳物*/               if(!ui.helper.dropped_on_droppable&ui.help.hasClass('moved_draggable')){/*这是破坏封装的大破解*/$.ui.ddmanager.current.cancelHelperRemoval=true;}},

警告:这会破坏封装,可能不兼容转发

0

我可能遗漏了一些东西,但这不仅仅是一个添加的例子吗

回复:“无效”

如果dragable是一个原始元素,而不是克隆,那么dragable的选项是什么?

1
  • 不,jquery在还原后仍会自动删除帮助程序。我终于找到了一个解决办法。。。。
    – MD核心
    评论 2008年10月20日13:10
0

我使用了一个自定义助手,将多个选择拖放项聚合到一个div中。这似乎与还原功能不匹配,所以我提出了这个方案。这些元素被手动附加回我通过.data()跟踪的原始父元素。

.可拖动({助手:函数(){var div=$(document.createElement('div')).data('lastParent',$(this).parent());返回div;},开始:function(){//... 向助手添加多个选择项。。},停止:函数(事件,ui){$($(ui.helper).data('lastParent')).append($(ui.helper().children());}}

这种方法确实会在漂亮的动画上失利,但它可能对您或其他人在这个问题上有用。

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.