看一看:预览
这是我第一次认真处理拖放。我继续前进。
很多可以改进。然而,效率更高,我已经花了大约 3 个小时在上面:D。
我确实学到了一个LOOOT。
$('.menu li').on('mousedown', function (e) {
$(this).draggable({
helper: "clone"
}).css({
opacity: '.7'
});
});
var li = {}, i = 0;
function enable(x) {
x.droppable({
hoverClass: "drop-hover",
drop: function (e, ui) {
$(ui.draggable).clone().prependTo(this).draggable().addClass('special').data('i', $(this).data('i'));
$(this).droppable('destroy')
}
});
};
$('.i1').each(function (u, n) {
$(this).data('i', i);
li[i] = $(this);
i++;
});
$('.i1').each(function (u, i) {
enable($(this));
});
$('.m').droppable({
accept: ".special",
drop: function (e, ui) {
var x = $(ui.draggable).data();
$(ui.draggable).remove();
enable(li[x.i]);
}
});
$('input[type="text"]').keypress(function (e) {
if (e.which !== 0 && e.charCode !== 0) { // only characters
var c = String.fromCharCode(e.keyCode | e.charCode);
$span = $(this).siblings('span').first();
$span.text($(this).val() + c); // the hidden span takes
// the value of the input
$inputSize = $span.width();
$(this).css("width", $inputSize); // apply width of the span to the input
}
});