可以't使jQuery Sortable在没有列的情况下工作
Can't get jQuery Sortable to work with no columns
我一直在为jQuery的可排序性而挣扎。我最初尝试遵循Nettuts关于可排序的教程,但发现仪表板布局的列方法过于紧凑。我想为图形等提供双倍宽度的小部件……所以我有一个固定宽度的父小部件div,不使用列。固定宽度可以容纳2个常规小部件,也可以容纳1个双倍宽度的小部件。小部件只是很好地包装在容器中,我只想对小部件的顺序进行排序。
我遇到的问题是行为不端。我可以拖动和排序小部件,但当点击和拖动时,占位符不在正确的位置。如果我抓住底部的小部件句柄并移动它,占位符会出现在顶部,它是小部件容器(#widgets)的宽度,而不是小部件本身。我可以看到,对于列,占位符可能会从列中获得其宽度,但在我的情况下,甚至左侧/顶部的位置也不正确。占位符位于小部件容器的顶部。
此外,动画总是将小部件移动到小部件容器的左上角。就像它认为插入点或上一个位置在左上角,而不是插入点或前一个位置。
我知道我在这里错过了什么。我尝试过更改可排序方法的附加位置,但它没有改变任何内容。任何帮助都将不胜感激!
呈现的HTML:的一块
<div id="widgets" class="span9">
<div class="widget span8">
<div class="widget-head">
<h4>Demo Activity 1</h4>
</div>
<div class="widget-content">
<p>The content...</p>
</div>
<div class="widget-bottom"></div>
</div>
<div class="widget span4">
<div class="widget-head">
<h4>Demo Activity 2</h4>
</div>
<div class="widget-content">
<p>The content...</p>
</div>
<div class="widget-bottom"></div>
</div>
<div class="widget span4">
<div class="widget-head">
<h4>Demo Activity 3</h4>
</div>
<div class="widget-content">
<p>The content...</p>
</div>
<div class="widget-bottom"></div>
</div>
</div>
基本占位符css,所以我可以实际看到它:
.widget-placeholder {
border: 2px dashed #333;
}
JS的一个剪辑,它设置了可排序的:
$sortableItems = $('> div', '#widgets');
$sortableItems.find('.widget-head').css({
cursor: 'move'
}).mousedown(function (e) {
$sortableItems.css({width:''});
$(this).parent().css({
width: $(this).parent().width() + 'px'
});
}).mouseup(function () {
if(!$(this).parent().hasClass('dragging')) {
$(this).parent().css({width:''});
} else {
$('#widgets').sortable('disable');
}
});
$('.widget').sortable({
items: $sortableItems,
connectWith: $('#widgets'),
handle: '.widget-head',
containment: $('#widgets'),
revert: 300,
delay: 100,
opacity: 0.8,
placeholder: 'widget-placeholder',
containment: 'document',
forcePlaceholderSize: true,
start: function (e,ui) {
$(ui.helper).addClass('dragging');
},
stop: function (e,ui) {
$(ui.item).css({width:''}).removeClass('dragging');
$('#widgets').sortable('enable');
}
});
将float: left;
添加到占位符类将在可排序列中按正确顺序放置。
.widget-placeholder {
border: 2px dashed #333;
float: left;
}
相关文章:
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 为什么jQuery代码段在没有IFrame的情况下可以工作,而在有IFrame时却不能工作
- AngularJS绑定没有'在没有填充父范围的情况下无法工作
- 如何使多个工作在这种情况下
- AJAX函数在没有警报的情况下无法工作
- 表单验证工作不正常,在不检查条目的情况下继续
- GET在POST不工作XMLHttpRequest的情况下正常工作
- JavaScript while循环没有'不能在有条件的情况下工作
- 如何停止两个按钮执行相同的工作?在这种情况下,它们都会滚动到顶部
- 在什么情况下,应该.deep.equal失败,但使用JSON.stringify进行比较工作正常
- 如何使html链接标签可以在没有标签的情况下工作
- Javascript变量在没有var的情况下工作
- Jquery脚本在没有警报的情况下无法工作
- 无论如何都要获取文档.在不删除整个页面的情况下写入即可工作
- Jquery在不触发事件的情况下部分工作
- 在没有调用函数的情况下,返回如何在Javascript中工作
- 位置管理器在没有互联网的情况下无法工作
- 有没有一种方法可以让jQuery日期选择器在没有年份的情况下工作
- 窗口clearInterval()在没有参数的情况下工作
- 如何使HTML5在没有JS或Jquery的情况下工作