我如何拖动隐藏的 child 元素
How can i drag a hidden child element
我正在使用 Jquery-Ui 拖放元素。
我想从左边的盒子里拖一个隐藏的元素到右边的盒子里。
结果是:当我放下元素时,它们与它们一起出现(显示:块)parents。
问题是我无法为隐藏元素定义可拖动行为(在我的项目中 -> .content 元素)。
* 我也在使用可排序小部件进行该操作。
左框元素:
<ul class="side_bar">
<li class="side_bar_element">
<div class="preview">preview text</div>
<div class="content" style="display:none">The content that i want to copy</div>
</li>
<li class="side_bar_element">
<div class="preview">preview text</div>
<div class="content" style="display:none">The content that i want to copy</div>
</li>
</ul>
右框容器:
<div id="right-box" class="wrapper"><div>
和Jquery:
$('document').ready(function () {
$(".wrapper").sortable({
opacity: .55});
$('.side_bar_element').draggable({
connectToSortable: ".wrapper",
cursor: "crosshair",
cursorAt: {left: -20, top: -20},
delay: 100,
grid: [10, 10],
helper: "clone",
opacity: 0.55,
zIndex: 100
});
});
如何在显示的 .content 元素中拖动它们 none?
一个简单的解决方案是修改 CSS 以仅显示左侧列表中带有 class .preview
的元素,以及带有 class [=13= 的元素]右边。
仅添加:
#right-box .preview, #left-box .content {
display: none;
}
#right-box .content, #left-box .preview {
display: block;
}
(并删除了内联 display: none
样式)
编辑:
因为您坚持不在 .right-list
上隐藏 DOM,您可以使用这里显示的技术:jquery draggable +sortable with custom html on drop event?
您可以搜索不需要的元素并将其替换为需要的元素DOM。
$(".wrapper").sortable({
revert: true,
receive: function (event, ui) {
$(this).find('li.side_bar_element').each(function () {
var html = $(this).children(".content").html();
$(this).replaceWith(html);
});
}
});
我正在使用 Jquery-Ui 拖放元素。 我想从左边的盒子里拖一个隐藏的元素到右边的盒子里。 结果是:当我放下元素时,它们与它们一起出现(显示:块)parents。
问题是我无法为隐藏元素定义可拖动行为(在我的项目中 -> .content 元素)。 * 我也在使用可排序小部件进行该操作。
左框元素:
<ul class="side_bar">
<li class="side_bar_element">
<div class="preview">preview text</div>
<div class="content" style="display:none">The content that i want to copy</div>
</li>
<li class="side_bar_element">
<div class="preview">preview text</div>
<div class="content" style="display:none">The content that i want to copy</div>
</li>
</ul>
右框容器:
<div id="right-box" class="wrapper"><div>
和Jquery:
$('document').ready(function () {
$(".wrapper").sortable({
opacity: .55});
$('.side_bar_element').draggable({
connectToSortable: ".wrapper",
cursor: "crosshair",
cursorAt: {left: -20, top: -20},
delay: 100,
grid: [10, 10],
helper: "clone",
opacity: 0.55,
zIndex: 100
});
});
如何在显示的 .content 元素中拖动它们 none?
一个简单的解决方案是修改 CSS 以仅显示左侧列表中带有 class .preview
的元素,以及带有 class [=13= 的元素]右边。
仅添加:
#right-box .preview, #left-box .content {
display: none;
}
#right-box .content, #left-box .preview {
display: block;
}
(并删除了内联 display: none
样式)
编辑:
因为您坚持不在 .right-list
上隐藏 DOM,您可以使用这里显示的技术:jquery draggable +sortable with custom html on drop event?
您可以搜索不需要的元素并将其替换为需要的元素DOM。
$(".wrapper").sortable({
revert: true,
receive: function (event, ui) {
$(this).find('li.side_bar_element').each(function () {
var html = $(this).children(".content").html();
$(this).replaceWith(html);
});
}
});