我有一个可拖动的jQuery UI,并且我试图创建一个包含原始元素的一些但不是全部信息的自定义帮助器。
下面是我的可拖动元素;
<ul>
<li><div>Name</div> <span>12-12-2011</span></li>
<li><div>Another name</div> <span>12-12-2011</span></li>
</ul>
和jQuery;
$("ul li").draggable(function(){
helper: function(){
return $("<div></div>");
}
});
其想法是,在拖动时,用户将拥有一个仅包含名称而不包含时间元素的帮助器。
我的实际代码甚至比这稍微复杂一些,所以我真正寻找的是任何选择器,它允许我选择原始元素或它的副本,然后对它执行各种jQuery魔术(过滤元素、添加新元素、类等)。
然而,在我的生活中,我找不到这个,draggable的文档很糟糕,#jquery没有人会帮助我。有什么想法吗?
提前感谢!
发布于 2011-12-14 17:24:19
首先,您调用draggable
的方式是错误的。需要的参数是对象文字,而不是函数。
this
是helper
函数中当前拖动的元素。
具有以下html
<ul>
<li><div class="name">Name</div> <span>12-12-2011</span></li>
<li><div class="name">Another name</div> <span>12-12-2011</span></li>
</ul>
您可以这样做:
$('ul li').draggable({
helper: function() {
//debugger;
return $("<div></div>").append($(this).find('.name').clone());
}
});
注意:我已经将类添加到表示该名称的<div>
中,以便选择它,但您可以找到任何其他方法来完成此操作。
这里有一个jsfiddle供您查看。
发布于 2011-12-14 17:23:46
一种可能的解决方案是
小提琴:http://jsfiddle.net/SWbse/
$(document).ready(function() {
$("ul li").draggable({
helper: 'clone',
start: function(event, ui){
ui.helper.children('span').remove();
}
});
});
https://stackoverflow.com/questions/8501887
复制相似问题