jquery sortable..笔记

所有的事件回调函数都有两个参数:event和ui,浏览器自有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'

Defineswherethehelperthatmoveswiththemouseisbeingappendedtoduringthedrag(forexample,toresolveoverlap/zIndexissues).

初始:$('.selector').sortable({appendTo:'body'});

获取:varappendTo=$('.selector').sortable('option','appendTo');

设置:$('.selector').sortable('option','appendTo','body');

axis:String:false

如果有设置,则元素仅能横向或纵向拖动。可选值:'x','y'

初始:$('.selector').sortable({axis:'x'});

获取:varaxis=$('.selector').sortable('option','axis');

设置:$('.selector').sortable('option','axis','x');

cancel:Selector:':input,button'

阻止排序动作在匹配的元素上发生。

初始:$('.selector').sortable({cancel:'button'});

获取:varcancel=$('.selector').sortable('option','cancel');

设置:$('.selector').sortable('option','cancel','button');

connectWith:Selector:false

允许sortable对象连接另一个sortable对象,可将item元素拖拽到另一个中。

初始:$('.selector').sortable({connectWith:'.otherlist'});

获取:varconnectWith=$('.selector').sortable('option','connectWith');

设置:$('.selector').sortable('option','connectWith','.otherlist');

containment:Element,String,Selector:false

约束排序动作只能在一个指定的范围内发生。可选值:DOM对象,'parent','document','window',或jQuery对象

初始:$('.selector').sortable({containment:'parent'});

获取:varcontainment=$('.selector').sortable('option','containment');

设置:$('.selector').sortable('option','containment','parent');

cursor:String:'auto'

定义在开始排序动作时,如果的样式。

初始:$('.selector').sortable({cursor:'crosshair'});

获取:varcursor=$('.selector').sortable('option','cursor');

设置:$('.selector').sortable('option','cursor','crosshair');

cursorAt:Object:false

当开始移动时,鼠标定位在的某个位置上(最多两个方向)。可选值:{top,left,right,bottom}.

初始:$('.selector').sortable({cursorAt:'top'});

获取:varcursorAt=$('.selector').sortable('option','cursorAt');

设置:$('.selector').sortable('option','cursorAt','top');

delay:Integer:0

以毫秒为单位,设置延迟多久才激活排序动作。此参数可防止误点击。

初始:$('.selector').sortable({delay:500});

获取:vardelay=$('.selector').sortable('option','delay');

设置:$('.selector').sortable('option','delay',500);

distance:Integer:1

决定至少要在元素上面拖动多少像素后,才正式触发排序动作。

初始:$('.selector').sortable({distance:30});

获取:vardistance=$('.selector').sortable('option','distance');

设置:$('.selector').sortable('option','distance',30);

dropOnEmpty:Boolean:true

是否允許拖拽到一個空的sortable对象中。

初始:$('.selector').sortable({dropOnEmpty:false});

获取:vardropOnEmpty=$('.selector').sortable('option','dropOnEmpty');

设置:$('.selector').sortable('option','dropOnEmpty',false);

forceHelperSize:Boolean:false

Iftrue,forcesthehelpertohaveasize.

初始:$('.selector').sortable({forceHelperSize:true});

获取:varforceHelperSize=$('.selector').sortable('option','forceHelperSize');

设置:$('.selector').sortable('option','forceHelperSize',true);

forcePlaceholderSize:Boolean:false

Iftrue,forcestheplaceholdertohaveasize.

初始:$('.selector').sortable({forcePlaceholderSize:true});

获取:varforcePlaceholderSize=$('.selector').sortable('option','forcePlaceholderSize');

设置:$('.selector').sortable('option','forcePlaceholderSize',true);

grid:Array:false

将排序对象的item元素视为一个格子处理,每次移动都按一个格子大小移动,数组值:[x,y]

初始:$('.selector').sortable({grid:[50,20]});

获取:vargrid=$('.selector').sortable('option','grid');

设置:$('.selector').sortable('option','grid',[50,20]);

handle:Selector,Element:false

限制排序的动作只能在item元素中的某个元素开始。

初始:$('.selector').sortable({handle:'h2'});

获取:varhandle=$('.selector').sortable('option','handle');

设置:$('.selector').sortable('option','handle','h2');

helper:String,Function:'original'

设置是否在拖拽元素时,显示一个辅助的元素。可选值:'original','clone'

初始:$('.selector').sortable({helper:'clone'});

获取:varhelper=$('.selector').sortable('option','helper');

设置:$('.selector').sortable('option','helper','clone');

items:Selector:'>*'

指定在排序对象中,哪些元素是可以进行拖拽排序的。

初始:$('.selector').sortable({items:'li'});

获取:varitems=$('.selector').sortable('option','items');

设置:$('.selector').sortable('option','items','li');

opacity:Float:false

定义当排序时,辅助元素(helper)显示的透明度。

初始:$('.selector').sortable({opacity:0.6});

获取:varopacity=$('.selector').sortable('option','opacity');

设置:$('.selector').sortable('option','opacity',0.6);

placeholderType:StringDefault:false

设置当排序动作发生时,空白占位符的CSS样式。

初始:$('.selector').sortable({placeholder:'ui-state-highlight'});

获取:varplaceholder=$('.selector').sortable('option','placeholder');

设置:$('.selector').sortable('option','placeholder','ui-state-highlight');

revert:Boolean:false

如果设置成true,则被拖拽的元素在返回新位置时,会有一个动画效果。

初始:$('.selector').sortable({revert:true});

获取:varrevert=$('.selector').sortable('option','revert');

设置:$('.selector').sortable('option','revert',true);

scroll:Boolean:true

如果设置成true,则元素被拖动到页面边缘时,会自动滚动。

初始:$('.selector').sortable({scroll:false});

获取:varscroll=$('.selector').sortable('option','scroll');

设置:$('.selector').sortable('option','scroll',false);

scrollSensitivity:Integer:20

设置当元素移动至边缘多少像素时,便开始滚动页面。

初始:$('.selector').sortable({scrollSensitivity:40});

获取:varscrollSensitivity=$('.selector').sortable('option','scrollSensitivity');

设置:$('.selector').sortable('option','scrollSensitivity',40);

scrollSpeed:Integer:20

设置页面滚动的速度。

初始:$('.selector').sortable({scrollSpeed:40});

获取:varscrollSpeed=$('.selector').sortable('option','scrollSpeed');

设置:$('.selector').sortable('option','scrollSpeed',40);

tolerance:String:'intersect'

设置当拖动元素越过其它元素多少时便对元素进行重新排序。可选值:'intersect','pointer'

intersect:至少重叠50%

pointer:鼠标指针重叠元素

初始:$('.selector').sortable({tolerance:'pointer'});

获取:vartolerance=$('.selector').sortable('option','tolerance');

设置:$('.selector').sortable('option','tolerance','pointer');

zIndex:Integer:1000

设置在排序动作发生时,元素的z-index值。

初始:$('.selector').sortable({zIndex:5});

获取:varzIndex=$('.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(){

varshow=$(".loader");

varorderlist=$(".orderlist");

varlistleft=$("div[id='column_left']");

varlistcenter=$("div[id='column_center']");

varlistright=$("div[id='column_right']");

$(".column").sortable({

opacity:0.5,//拖动的透明度

revert:true,//缓冲效果

cursor:'move',//拖动的时候鼠标样式

connectWith:".column",

//开始用update结果执行两次,浪费资源,古改成stop

//但是stop在元素没有改变位置的时候也会执行,

//用update其他js会有问题,^_^

stop:function(){

varnew_order_left=[];//左栏布局

varnew_order_center=[];//中栏布局

varnew_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);

});

varnewleftid=new_order_left.join(',');

varnewcenterid=new_order_center.join(',');

varnewrightid=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("");

}

});

}

});

相关推荐