当我拖动问题1&问题2问题问题我想问题Slots div在第二个问题被放入其中时动态扩展其大小。 也就是说,这两个问题都应该在问题时被删除,并且可以看到。
HTML:
<div id="questionsHolder">
<div id="question1" class="question">
1. This is a random question.
</div>
</div>
<div id="questionsHolder1">
<div id="question2" class="question1">
2. This is a random question.
</div>
</div>
<br>
<br><br><br><br><br>
<div id="questionSlots"></div>
CSS:
.question {
width: 500px;
height: 50px;
margin-top: 25px;
background: #ebedf2;
border: 1px solid #333;
clear: both;
text-align: center;
z-index: 200;
}
.question1 {
width: 500px;
height: 50px;
margin-top: 25px;
background: #ebedf2;
border: 1px solid #333;
clear: both;
text-align: center;
z-index: 200;
}
#questionSlots div {
/*margin-top: 25px;*/
border-width: 3px;
border-style: dashed;
width: 496px;
height: 46px;
background: #ddf;
overflow:hidden;
}
#questionsHolder{
border-width: 3px;
border-style: dashed;
width: 496px;
/*height: 46px;*/
background: grey;
}
#questionsHolder1{
border-width: 3px;
border-style: dashed;
width: 496px;
/*height: 46px;*/
background: grey;
}
#questionSlots .question.hovered {
background: green;
}
JS:
$( init );
function init() {
// Create droppable
$('<div id="slot1"></div>').appendTo( '#questionSlots' ).droppable( {
accept: '#questionsHolder div,#questionsHolder1 div',
hoverClass: 'hovered',
drop:function(event, ui){
ui.draggable.position( { of: $(this), my: 'left top', at: 'left top' } );
}
} );
$('#questionsHolder').droppable( {
//accept: '#slot1 div',
hoverClass: 'ui-state-highlight',
drop:function(event, ui){
ui.draggable.position( { of: $(this), my: 'left top', at: 'left top' } );
}
} );
// Make question draggable
$("#question1").draggable( {
cursor: 'move',
//snap: '#content',
revert: 'invalid'
} );
// Make question draggable
$("#question2").draggable( {
cursor: 'move',
//snap: '#content',
revert: 'invalid'
} );
/*function handleQuestionDrop( event, ui ) {
// Make sure no more questions get dropped at droppable
// position it directly on top of the slot
$(this).droppable({ accept: ('#' + $(ui.draggable).attr('id') ) });
ui.draggable.position( { of: $(this), my: 'left top', at: 'left top' } );
ui.draggable.draggable( 'option', 'revert', false );
}*/
}
js小提琴:http://jsfiddle.net/6zGLk/14/
如果您可以通过编辑js小提琴代码并转发链接来帮助我,那会更好。
提前谢谢。
答案 0 :(得分:0)
您只想将$.appendTo()
与$.sortable()
一起使用。还更新了你的函数和CSS。
$(init);
function init() {
$('<div id="slot1"></div>').appendTo('#questionSlots').droppable({
accept: '#questionsHolder div,#questionsHolder1 div',
hoverClass: 'hovered',
drop: function(event, ui) {
ui.draggable.css({
top: 0,
left: 0
}).appendTo(this);
}
}).sortable();
$('#questionsHolder, #questionsHolder1').droppable({
//accept: '#slot1 div',
hoverClass: 'ui-state-highlight',
drop: function(event, ui) {
ui.draggable.css({
top: 0,
left: 0
}).appendTo(this);
}
});
$("#question1,#question2").draggable({
cursor: 'move',
revert: 'invalid',
});
}
&#13;
.question {
width: 500px;
height: 50px;
background: #ebedf2;
border: 1px solid #333;
clear: both;
text-align: center;
position: relative;
z-index: 1;
}
.question1 {
width: 500px;
height: 50px;
background: #ebedf2;
border: 1px solid #333;
clear: both;
text-align: center;
}
#questionSlots div {
/*margin-top: 25px;*/
border-width: 3px;
border-style: dashed;
width: 496px;
min-height: 46px;
background: #ddf;
overflow: hidden;
}
#questionsHolder {
border-width: 3px;
border-style: dashed;
width: 496px;
height: 46px;
background: grey;
}
#questionsHolder1 {
border-width: 3px;
border-style: dashed;
width: 496px;
height: 46px;
background: grey;
}
#questionSlots .question.hovered {
background: green;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<div id="questionsHolder">
<div id="question1" class="question">
1. This is a random question.
</div>
</div>
<div id="questionsHolder1">
<div id="question2" class="question1">
2. This is a random question.
</div>
</div>
<br>
<br>
<br>
<br>
<br>
<br>
<div id="questionSlots"></div>
&#13;