`
hb_keepmoving
  • 浏览: 228861 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

jquery sortable..笔记

 
阅读更多

所有的事件回调函数都有两个参数:eventui,浏览器自有event对象,和经过封装的ui对象  
ui.helper - 表示sortable元素的JQuery对象,通常是当前元素的克隆对象  
ui.position - 表示相对当前对象,鼠标的坐标值对象{top,left}  
ui.offset - 表示相对于当前页面,鼠标的坐标值对象{top,left}  
ui.item - 表示当前拖拽的元素  
ui.placeholder - 占位符(如果有定义的话)  
ui.sender - 当前拖拽元素的所属sortable对象(仅当元素是从另一个sortable对象传递过来时有用)  

·参数(参数名 : 参数类型 : 默认值)  
appendTo : String : 'parent'
Defines where the helper that moves with the mouse is being appended to during the drag (for example, to resolve overlap/zIndex issues).  
初始:$('.selector').sortable({ appendTo: 'body' });  
获取:var appendTo = $('.selector').sortable('option', 'appendTo');  
设置:$('.selector').sortable('option', 'appendTo', 'body');  

axis : String : false   
如果有设置,则元素仅能横向或纵向拖动。可选值:'x', 'y'
初始:$('.selector').sortable({ axis: 'x' });  
获取:var axis = $('.selector').sortable('option', 'axis');  
设置:$('.selector').sortable('option', 'axis', 'x');  

cancel : Selector : ':input,button'   
阻止排序动作在匹配的元素上发生。  
初始:$('.selector').sortable({ cancel: 'button' });  
获取:var cancel = $('.selector').sortable('option', 'cancel');  
设置:$('.selector').sortable('option', 'cancel', 'button');  

connectWith : Selector : false   
允许sortable对象连接另一个sortable对象,可将item元素拖拽到另一个中。  
初始:$('.selector').sortable({ connectWith: '.otherlist' });  
获取:var connectWith = $('.selector').sortable('option', 'connectWith');  
设置:$('.selector').sortable('option', 'connectWith', '.otherlist');  

containment : Element, String, Selector : false   
约束排序动作只能在一个指定的范围内发生。可选值:DOM对象, 'parent', 'document', 'window', 或jQuery对象  
初始:$('.selector').sortable({ containment: 'parent' });  
获取:var containment = $('.selector').sortable('option', 'containment');  
设置:$('.selector').sortable('option', 'containment', 'parent');  

cursor : String : 'auto'
定义在开始排序动作时,如果的样式。  
初始:$('.selector').sortable({ cursor: 'crosshair' });  
获取:var cursor = $('.selector').sortable('option', 'cursor');  
设置:$('.selector').sortable('option', 'cursor', 'crosshair');  

cursorAt : Object : false   
当开始移动时,鼠标定位在的某个位置上(最多两个方向)。可选值:{ top, left, right, bottom }.  
初始:$('.selector').sortable({ cursorAt: 'top' });  
获取:var cursorAt = $('.selector').sortable('option', 'cursorAt');  
设置:$('.selector').sortable('option', 'cursorAt', 'top');  

delay : Integer : 0  
以毫秒为单位,设置延迟多久才激活排序动作。此参数可防止误点击。  
初始:$('.selector').sortable({ delay: 500 });  
获取:var delay = $('.selector').sortable('option', 'delay');  
设置:$('.selector').sortable('option', 'delay', 500);  

distance : Integer : 1  
决定至少要在元素上面拖动多少像素后,才正式触发排序动作。  
初始:$('.selector').sortable({ distance: 30 });  
获取:var distance = $('.selector').sortable('option', 'distance');  
设置:$('.selector').sortable('option', 'distance', 30);  

dropOnEmpty : Boolean : true   
是否允許拖拽到一個空的sortable对象中。  
初始:$('.selector').sortable({ dropOnEmpty: false });  
获取:var dropOnEmpty = $('.selector').sortable('option', 'dropOnEmpty');  
设置:$('.selector').sortable('option', 'dropOnEmpty', false);  

forceHelperSize : Boolean : false   
If true, forces the helper to have a size.  
初始:$('.selector').sortable({ forceHelperSize: true });  
获取:var forceHelperSize = $('.selector').sortable('option', 'forceHelperSize');  
设置:$('.selector').sortable('option', 'forceHelperSize', true);  

forcePlaceholderSize : Boolean : false
If true, forces the placeholder to have a size.  
初始:$('.selector').sortable({ forcePlaceholderSize: true });  
获取:var forcePlaceholderSize = $('.selector').sortable('option', 'forcePlaceholderSize');  
设置:$('.selector').sortable('option', 'forcePlaceholderSize', true);  

grid : Array : false   
将排序对象的item元素视为一个格子处理,每次移动都按一个格子大小移动,数组值:[x,y]  
初始:$('.selector').sortable({ grid: [50, 20] });  
获取:var grid = $('.selector').sortable('option', 'grid');  
设置:$('.selector').sortable('option', 'grid', [50, 20]);  

handle : Selector, Element : false   
限制排序的动作只能在item元素中的某个元素开始。  
初始:$('.selector').sortable({ handle: 'h2' });  
获取:var handle = $('.selector').sortable('option', 'handle');  
设置:$('.selector').sortable('option', 'handle', 'h2');  

helper : String, Function : 'original'   
设置是否在拖拽元素时,显示一个辅助的元素。可选值:'original', 'clone'
初始:$('.selector').sortable({ helper: 'clone' });  
获取:var helper = $('.selector').sortable('option', 'helper');  
设置:$('.selector').sortable('option', 'helper', 'clone');  

items : Selector : '> *'   
指定在排序对象中,哪些元素是可以进行拖拽排序的。  
初始:$('.selector').sortable({ items: 'li' });  
获取:var items = $('.selector').sortable('option', 'items');  
设置:$('.selector').sortable('option', 'items', 'li');  

opacity : Float : false   
定义当排序时,辅助元素(helper)显示的透明度。  
初始:$('.selector').sortable({ opacity: 0.6 });  
获取:var opacity = $('.selector').sortable('option', 'opacity');  
设置:$('.selector').sortable('option', 'opacity', 0.6);  

placeholderType: StringDefault: false   
设置当排序动作发生时,空白占位符的CSS样式。  
初始:$('.selector').sortable({ placeholder: 'ui-state-highlight' });  
获取:var placeholder = $('.selector').sortable('option', 'placeholder');  
设置:$('.selector').sortable('option', 'placeholder', 'ui-state-highlight');  

revert : Boolean : false
如果设置成true,则被拖拽的元素在返回新位置时,会有一个动画效果。  
初始:$('.selector').sortable({ revert: true });  
获取:var revert = $('.selector').sortable('option', 'revert');  
设置:$('.selector').sortable('option', 'revert', true);  

scroll : Boolean : true
如果设置成true,则元素被拖动到页面边缘时,会自动滚动。  
初始:$('.selector').sortable({ scroll: false });  
获取:var scroll = $('.selector').sortable('option', 'scroll');  
设置:$('.selector').sortable('option', 'scroll', false);  

scrollSensitivity : Integer : 20   
设置当元素移动至边缘多少像素时,便开始滚动页面。  
初始:$('.selector').sortable({ scrollSensitivity: 40 });  
获取:var scrollSensitivity = $('.selector').sortable('option', 'scrollSensitivity');  
设置:$('.selector').sortable('option', 'scrollSensitivity', 40);  

scrollSpeed : Integer : 20  
设置页面滚动的速度。  
初始:$('.selector').sortable({ scrollSpeed: 40 });  
获取:var scrollSpeed = $('.selector').sortable('option', 'scrollSpeed');  
设置:$('.selector').sortable('option', 'scrollSpeed', 40);  

tolerance : String : 'intersect'
设置当拖动元素越过其它元素多少时便对元素进行重新排序。可选值:'intersect', 'pointer'
intersect:至少重叠50%  
pointer:鼠标指针重叠元素  
初始:$('.selector').sortable({ tolerance: 'pointer' });  
获取:var tolerance = $('.selector').sortable('option', 'tolerance');  
设置:$('.selector').sortable('option', 'tolerance', 'pointer');  

zIndex : Integer : 1000  
设置在排序动作发生时,元素的z-index值。  
初始:$('.selector').sortable({ zIndex: 5 });  
获取:var zIndex = $('.selector').sortable('option', 'zIndex');  
设置:$('.selector').sortable('option', 'zIndex', 5);  


·事件  

start  
当排序动作开始时触发此事件。  
定义:$('.selector').sortable({ start: function(event, ui) { ... } });  
绑定:$('.selector').bind('sortstart', function(event, ui) { ... });  

sort  
当元素发生排序时触发此事件。  
定义:$('.selector').sortable({ sort: function(event, ui) { ... } });  
绑定:$('.selector').bind('sort', function(event, ui) { ... });  

change  
当元素发生排序且坐标已发生改变时触发此事件。  
定义:$('.selector').sortable({ change: function(event, ui) { ... } });  
绑定:$('.selector').bind('sortchange', function(event, ui) { ... });  

beforeStop  
当排序动作结束之前触发此事件。此时占位符元素和辅助元素仍有效。  
定义:$('.selector').sortable({ beforeStop: function(event, ui) { ... } });  
绑定:$('.selector').bind('sortbeforeStop', function(event, ui) { ... });  

stop  
当排序动作结束时触发此事件。  
定义:$('.selector').sortable({ stop: function(event, ui) { ... } });  
绑定:$('.selector').bind('sortstop', function(event, ui) { ... });  

update  
当排序动作结束时且元素坐标已经发生改变时触发此事件。  
定义:$('.selector').sortable({ update: function(event, ui) { ... } });  
绑定:$('.selector').bind('sortupdate', function(event, ui) { ... });  

receive  
当一个已连接的sortable对象接收到另一个sortable对象的元素后触发此事件。  
定义:$('.selector').sortable({ receive: function(event, ui) { ... } });  
绑定:$('.selector').bind('sortreceive', function(event, ui) { ... });  

over  
当一个元素拖拽移入另一个sortable对象后触发此事件。  
定义:$('.selector').sortable({ over: function(event, ui) { ... } });  
绑定:$('.selector').bind('sortover', function(event, ui) { ... });  

out  
当一个元素拖拽移出sortable对象移出并进入另一个sortable对象后触发此事件。  
定义:$('.selector').sortable({ out: function(event, ui) { ... } });  
绑定:$('.selector').bind('sortout', function(event, ui) { ... });  

activate  
当一个有使用连接的sortable对象开始排序动作时,所有允许的sortable触发此事件。  
定义:$('.selector').sortable({ activate: function(event, ui) { ... } });  
绑定:$('.selector').bind('sortactivate', function(event, ui) { ... });  

deactivate  
当一个有使用连接的sortable对象结束排序动作时,所有允许的sortable触发此事件。  
定义:$('.selector').sortable({ deactivate: function(event, ui) { ... } });  
绑定:$('.selector').bind('sortdeactivate', function(event, ui) { ... });  


·方法  
destory  
从元素中移除拖拽功能。  
用法:.sortable( 'destroy' )  

disable  
禁用元素的拖拽功能。  
用法:.sortable( 'disable' )  

enable  
启用元素的拖拽功能。  
用法:.sortable( 'enable' )  

option  
获取或设置元素的参数。  
用法:.sortable( 'option' , optionName , [value] )  

serialize  
获取或设置序列化后的每个item元素的id属性。  
用法:.sortable( 'serialize' , [options] )  

toArray  
获取序列化后的每个item元素的id属性的数组。  
用法:.sortable( 'toArray' )  

refresh  
手动重新刷新当前sortable对象的item元素的排序。  
用法:.sortable( 'refresh' )  

refreshPositions  
手动重新刷新当前sortable对象的item元素的坐标,此方法可能会降低性能。  
用法:.sortable( 'refreshPositions' )  

cancel  
取消当前sortable对象中item元素的排序改变。  
用法:.sortable( 'cancel' )


排序后保存有两种方法,一是cookie,二是数据库配置文件等。
这个是cookie  的例子 大家可以参考 http://www.cnblogs.com/tianxiangbing/archive/2010/01/26/jquery_sortable.html

下面是数据库的部分代码 原作:
    $(function() {
        var show = $(".loader"); 
        var orderlist = $(".orderlist");
        var listleft = $("div[id = 'column_left']");
        var listcenter = $("div[id = 'column_center']");
        var listright = $("div[id = 'column_right']");
        $( ".column" ).sortable({
        opacity: 0.5,//拖动的透明度
        revert: true, //缓冲效果
        cursor: 'move', //拖动的时候鼠标样式
        connectWith: ".column",
        //开始用update 结果执行两次,浪费资源,古改成stop
        //但是stop在元素没有改变位置的时候也会执行,
        //用update其他js会有问题,^_^
        stop: function(){
            var new_order_left = []; //左栏布局
            var new_order_center = [];//中栏布局
            var new_order_right = [];//右栏布局
            listleft.children(".portlet").each(function() {
                new_order_left.push(this.title);
             });
            listcenter.children(".portlet").each(function() {
                new_order_center.push(this.title);
             });
            listright.children(".portlet").each(function() {
                new_order_right.push(this.title);
             });
            var newleftid = new_order_left.join(',');
            var newcenterid = new_order_center.join(',');
            var newrightid = new_order_right.join(',');
            $.ajax({
               type: "post",
               url: jsonUrl, //服务端处理程序
               data: { leftid: newleftid, centerid: newcenterid, rightid:newrightid},   //id:新的排列对应的ID,order:原排列顺序
//               beforeSend: function() {
//                    show.html(" 正在更新");
//               },
               success: function(msg) {
                    //alert(msg);
                    show.html("");
               }
            });
       }    
        });

分享到:
评论

相关推荐

    Table表格排序显示jQuery代码.zip

    虽然这个项目未明确提及使用jQuery插件,但jQuery社区提供了许多用于表格排序的现成插件,如DataTables或Sortable。这些插件能提供高级功能,如多列排序、过滤、分页等。 6. **HTML与CSS**: `index.html`文件...

    jQuery自由拖拽排序代码插件.zip

    拖拽排序插件的JavaScript文件(例如"jquery.sortable.js")实现了拖放排序的核心逻辑,它可能包含若干方法,如`.sortable()`,用于启用拖放功能,以及可能的回调函数,如`start`, `update`和`stop`,分别在拖动开始...

    jQuery鼠标上下拖动div排序代码.zip

    在这里,开发者会定义需要排序的div元素,设置相应的class或者id以便于jQuery和Sortable插件识别。同时,HTML中可能会包含一些示例数据,用于展示排序功能的效果。 最后,`fonts`文件夹可能包含了项目中使用的字体...

    jquery UI(笔记)

    这个笔记主要涵盖jQuery UI的基本概念、核心组件、使用方法以及在实际项目中的应用。 ### 1. jQuery UI 的组成 jQuery UI 包含了以下几大部分: - **Widgets(组件)**:如对话框(Dialog)、日期选择器(Datepicker...

    jquery实现拖拽排序插件.zip

    var sortedItems = $(this).sortable("toArray"); console.log(sortedItems); } }); ``` 4. **响应事件**:插件会自动处理拖放过程中的事件,如开始拖动、拖动中和结束拖动。你可以在配置选项中定义相应的回调...

    jQuery拖拽排序插件DDSort.js.zip

    《jQuery拖拽排序插件DDSort.js:实现高效交互体验》 在Web开发中,用户交互体验至关重要,而拖拽排序功能是提升用户体验的一种有效方式。jQuery作为一个强大的JavaScript库,提供了丰富的API和插件,使得开发者能...

    jQuery自定义添加编辑删除表单模块及拖拽排序代码.zip

    这个功能可能通过jQuery UI库的`draggable`和`droppable`插件实现,或者是使用第三方库如`Sortable`或`jQuery Sortable`。拖拽排序通常涉及设置元素的拖放行为,监听拖放事件,以及在事件触发时更新元素的顺序和位置...

    jQuery图片上传拖拽排序代码.zip

    `.sortable { list-style-type: none; margin: 0; padding: 0; }`则用于清除列表样式并调整布局。 在实现拖拽排序功能时,可能会使用到HTML5的`drag`和`drop`事件,以及`dataTransfer`对象。例如,`e.dataTransfer....

    Jquery UI 1.8 The user interface library

    2. 选择器(Selectable, Sortable):允许用户选择和排序元素。 3. 可调整大小的组件(Resizable):可以改变页面元素的大小。 4. 进度条(Progressbar):展示任务进度,通常用于文件上传等场景。 5. 日期选择器...

    jQuey 非常好用的5个插件.net程序软件

    3. **jquery.ui-1.5.2**: jQuery UI是一个扩展jQuery功能的库,提供了许多用户界面组件,如对话框(Dialog)、拖放(Draggable)、可排序(Sortable)和可堆叠(Resizable)元素。在.NET应用程序中,这些组件可以...

    Html元素拖动排序

    - `jQuery UI Sortable`: 这是jQuery的一个扩展,它为HTML元素提供了拖放排序的功能。只需引入库和简单配置,即可快速实现拖放排序。 - `SortableJS`: 这是一个轻量级的JavaScript库,不依赖任何其他框架,适用于...

    第一次记录Bootstrap table学习笔记(1)

    例如,你可以通过设置 `data-sortable="true"` 来开启排序功能,或使用 `data-search="true"` 开启搜索栏。对于分页,可以通过 `data-pagination="true"` 和 `data-page-size` 设置每页显示的数据量。 此外,...

    jqgrid 简单学习笔记

    `colNames`用于设置列的显示名称,而`colModel`则包含每列的详细信息,如字段名(`name`)、索引(`index`)、是否可编辑(`editable`)、排序规则(`sortable`)以及编辑选项(`editoptions`)等。 在示例中,我们...

    extjs 学习笔记(三) 最基本的grid

    jquery在这方面则正好相反,它的UI都以插件形式提供,可以需要什么就引用什么,所以非常小巧灵活,但由于插件往往是由不同的人或者团队来提供,界面和接口往往就不那么一致。反正是各有千秋吧。 今天学习extjs中的...

Global site tag (gtag.js) - Google Analytics