如何在删除之前设置 jquery 可排序目标列表的样式
how to style jquery sortable target list before drop
使用 jquery sortable,我可以在选项中定义的 conect 列表中设置占位符connectWith
样式,这样我就可以看到内容将被丢弃的位置。但是,我找不到一种方法来设置包含占位符的列表的样式。
我的代码:
.HTML:
<div class="sortable">
<div class="item"></div>
</div>
<div class="sortable"></div>
<div class="sortable"></div>
Javascript:
$(".sortable").sortable({
connectWith: ".sortable",
over: function(event,ui){
//add class .hover to list
},
change: function(event, ui) {
//style placeholder
ui.placeholder.css({
visibility: 'visible',
background: '#EEE'
});
}
});
在这里演示
根据 Alteyss 的回答,我通过在事件上方、停止和输出上添加新行来设置项目父项的样式:
$(".sortable").sortable({
connectWith: ".sortable",
stop: function(event,ui){
$('.sortable').removeClass('hover');
},
over: function(event,ui){
//will add class .hover to list
$('.ui-sortable-placeholder').parents('.sortable').addClass('hover');
},
out: function(event,ui){
$('.ui-sortable-placeholder').parents('.sortable').removeClass('hover');
},
change: function(event, ui) {
//will style placeholder
$('.ui-sortable-placeholder').css({
visibility: 'visible',
background: '#EEE'
});
}
});
新演示
另一种
更改placeholder
样式的方法:
看到您有一个(当您拖动框时)带有与占位符相关的类的标签:
ui-sortable-placeholder
所以创建一个将覆盖预设的类:
.ui-sortable-placeholder
{
//Style
}
编辑:应用悬停类
创建一个在 jQuery 中处理hover
类的函数,并将其调到事件参数中:
// Your function
var addClass = function (jQueryElement, add) {
// Add or remove your class according to the boolean
if (add) {
//Add class with : addClass from jQuery
$(jQueryElement).addClass("hover");
}
else {
//Remove class with : removeClass from jQuery
$(jQueryElement).removeClass("hover");
}
}
// Plugin use
$(".sortable").sortable({
connectWith: ".sortable",
// This event is triggered when a sortable item is moved into a sortable list.
over: function(event,ui){
var elementsToChange = $(".ui-sortable-placeholder").parents(".sortable");
addClass(elementsToChange, true);
},
// This event is triggered when a sortable item is moved away from a sortable list.
out: function(event,ui){
var elementsToChange = $(".ui-sortable-placeholder").parents(".sortable");
addClass(elementsToChange, false);
},
// This event is triggered when sorting has stopped.
stop: function(event,ui){
addClass(".sortable", false);
},
change: function(event, ui) {
//style placeholder
ui.placeholder.css({
visibility: 'visible',
background: '#EEE'
});
}
});
美丽的小提琴!
对于其他活动,请享受DOC : http://api.jqueryui.com/sortable/
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 使用promise和mongoose对文档进行排序
- Selectize.js:如何对整数值的选项进行排序
- Javascript排序的图像弹出窗口..可以't单独弹出
- 如何通过引用var Using DataTables来进行分页或排序
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- AngularJs对所有页面中的所有记录进行排序
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- 按从高到低对多个int变量进行排序
- jQuery UI可排序-多连接列表拖动
- Javascript排序字符串或数字
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- Href:当前DIV中的目标ID
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- sort而不是排序javascript
- 基于比较子元素内容和目标标题内容的Javascript排序元素
- 如何在目标可排序对象接收后获取拖动项的类
- 对 HTML 列表进行排序,然后对目标元素进行排序
- 如何在删除之前设置 jquery 可排序目标列表的样式