无法使用 jQuery 的 connectWith 加入可排序的 div
Cant use jQuery's connectWith to join sortable div
我正在使用 jQuery 的 sortable
函数来允许用户重新排列 div 的顺序。当用户单击该按钮时,会出现一个弹出窗口 div。
我已尝试使用 connectWith
功能允许用户将此弹出窗口 div 拖到 div 的列表中,但是它不会移动以适应两者之间他们 - 相反,它停留在他们身上。这与 z-index
有什么关系吗?
$("#click").on("click", function() {
$("#sortable1").show();
});
$('#sortable1, #sortable2').sortable({
axis: 'y',
connectWith: '.first',
});
.container {
position: absolute;
margin: 0 auto;
left: 0;
right: 0;
top: 13%;
width: 85%;
}
div.div {
border: 1px solid;
margin-top: 7.5px;
margin-bottom: 7.5px;
}
.popup {
width: 50%;
left: 0;
right: 0;
top: 20%;
margin: 0 auto;
z-index: 1;
position: absolute;
background: #fff;
border: 1px solid;
}
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="sortable1" style="display: none;">
<div class="popup">
<h2>RED</h2>
<p>When his peaceful life is threatened by a high-tech assassin, former black-ops agent Frank Moses reassembles his old team in a last ditch effort to survive and uncover his assailants.</p>
</div>
</div>
<div class="container">
<button id="click">Click me</button>
<br>
<br>
<div id="sortable2" class="first">
<div class="div">
<h2>Deep Impact</h2>
<p>Unless a comet can be destroyed before colliding with Earth, only those allowed into shelters will survive. Which people will survive?</p>
</div>
<div class="div">
<h2>The Adjustment Bureau</h2>
<p>The affair between a politician and a contemporary dancer is affected by mysterious forces keeping the lovers apart.</p>
</div>
<div class="div">
<h2>Lord of the Flies</h2>
<p>Stranded on an island, a group of schoolboys degenerate into savagery.</p>
</div>
</div>
</div>
JsFiddle: https://jsfiddle.net/o0exme4f/
这是预期输出(当您拖动 div 说 'drag me' 时,您可以看到它位于 divs 说 'example') - 这个例子不使用弹出窗口:
$("#sortable1, #sortable2").sortable({
connectWith: ".first"
});
div.ex {
border: 1px solid;
padding: 5px;
}
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="sortable1" class="first">
<div class="ex">Example</div>
<div class="ex">Example</div>
<div class="ex">Example</div>
<div class="ex">Example</div>
</div>
<p>
Drag this div into the set above:
</p>
<div id="sortable2">
<div class="ex">drag me</div>
</div>
JsFiddle: https://jsfiddle.net/5ayf2yva/
我前段时间遇到过类似的问题。这是由于您已将位置属性应用于 popup
。您应该从 popup
css 中删除与 sortable
冲突的 position
属性或将值更改为 static
。可排序库不适用于绝对定位的项目。
.popup {
width: 50%;
left: 0;
right: 0;
top: 20%;
margin: 0 auto;
z-index: 1;
background: #fff;
border: 1px solid;
}
我正在使用 jQuery 的 sortable
函数来允许用户重新排列 div 的顺序。当用户单击该按钮时,会出现一个弹出窗口 div。
我已尝试使用 connectWith
功能允许用户将此弹出窗口 div 拖到 div 的列表中,但是它不会移动以适应两者之间他们 - 相反,它停留在他们身上。这与 z-index
有什么关系吗?
$("#click").on("click", function() {
$("#sortable1").show();
});
$('#sortable1, #sortable2').sortable({
axis: 'y',
connectWith: '.first',
});
.container {
position: absolute;
margin: 0 auto;
left: 0;
right: 0;
top: 13%;
width: 85%;
}
div.div {
border: 1px solid;
margin-top: 7.5px;
margin-bottom: 7.5px;
}
.popup {
width: 50%;
left: 0;
right: 0;
top: 20%;
margin: 0 auto;
z-index: 1;
position: absolute;
background: #fff;
border: 1px solid;
}
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="sortable1" style="display: none;">
<div class="popup">
<h2>RED</h2>
<p>When his peaceful life is threatened by a high-tech assassin, former black-ops agent Frank Moses reassembles his old team in a last ditch effort to survive and uncover his assailants.</p>
</div>
</div>
<div class="container">
<button id="click">Click me</button>
<br>
<br>
<div id="sortable2" class="first">
<div class="div">
<h2>Deep Impact</h2>
<p>Unless a comet can be destroyed before colliding with Earth, only those allowed into shelters will survive. Which people will survive?</p>
</div>
<div class="div">
<h2>The Adjustment Bureau</h2>
<p>The affair between a politician and a contemporary dancer is affected by mysterious forces keeping the lovers apart.</p>
</div>
<div class="div">
<h2>Lord of the Flies</h2>
<p>Stranded on an island, a group of schoolboys degenerate into savagery.</p>
</div>
</div>
</div>
JsFiddle: https://jsfiddle.net/o0exme4f/
这是预期输出(当您拖动 div 说 'drag me' 时,您可以看到它位于 divs 说 'example') - 这个例子不使用弹出窗口:
$("#sortable1, #sortable2").sortable({
connectWith: ".first"
});
div.ex {
border: 1px solid;
padding: 5px;
}
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="sortable1" class="first">
<div class="ex">Example</div>
<div class="ex">Example</div>
<div class="ex">Example</div>
<div class="ex">Example</div>
</div>
<p>
Drag this div into the set above:
</p>
<div id="sortable2">
<div class="ex">drag me</div>
</div>
JsFiddle: https://jsfiddle.net/5ayf2yva/
我前段时间遇到过类似的问题。这是由于您已将位置属性应用于 popup
。您应该从 popup
css 中删除与 sortable
冲突的 position
属性或将值更改为 static
。可排序库不适用于绝对定位的项目。
.popup {
width: 50%;
left: 0;
right: 0;
top: 20%;
margin: 0 auto;
z-index: 1;
background: #fff;
border: 1px solid;
}