jQuery拖動(dòng)元素并對元素進(jìn)行重新排序
本文實(shí)例講述了jQuery拖動(dòng)元素并對元素進(jìn)行重新排序的實(shí)現(xiàn)方法,分享給大家供大家參考,具體實(shí)現(xiàn)內(nèi)容如下
效果圖:

具體內(nèi)容如下:
從上圖可以看出我們今天要實(shí)現(xiàn)的功能。當(dāng)用戶拖動(dòng)一個(gè)圖片時(shí),就能改變圖片的已有排序并更新表中的排列順序。比如用戶可以隨意拖動(dòng)我們網(wǎng)站中的布局,如谷歌iGoogle就已經(jīng)實(shí)現(xiàn)了。這樣便很好的提高了用戶體驗(yàn)。
下邊,我們一步一步來實(shí)現(xiàn)這個(gè)功能。
<span id="show">
<div>
<input id="check" type="checkbox" />
</div>
<div>
<input type="hidden" id="orderlist" />
<ul id="list">
<asp:Repeater ID="rptOrder" runat="server">
<ItemTemplate>
<li id="<%#Eval("ID") %>" title="<%#Eval("OrderID") %>">
<img alt="img" src="<%#Eval("Link") %>" />
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
有一個(gè)單選框,當(dāng)用戶選中后,拖動(dòng)圖片時(shí)對數(shù)據(jù)庫中數(shù)據(jù)排序進(jìn)行更改。隱藏域保存原來的圖片排列順序。ul顯示圖片列表。
為了能看得過去,稍微加了點(diǎn)樣式:
var show = jQuery("#show"); //輸出提示
var orderlist = jQuery("#orderlist"); //原順序
var check = jQuery("#check"); //是否更新到數(shù)據(jù)庫
首先將常用的選擇器保存下來,這樣后邊調(diào)用就變得比較簡潔。這一部大家肯定沒有問題。^_^
//保存原來的排列順序
var order = [];
list.children("li").each(function() {
order.push(this.title); //原排列順序保存在title,得到后更改title
jQuery(this).attr("title", "你可以拖動(dòng)進(jìn)行排序");
});
orderlist.val(order.join(','));
保存原來的排列順序到隱藏域。這里用到了數(shù)組的push()方法,就是將ul每個(gè)li中的title(原來的排列順序)添加到數(shù)組中。最后用join()方法,得到了原排列順序,返回一個(gè)字符串。現(xiàn)在排列順序格式為1,2,3 。
//ajax更新
var Update = function(itemid, itemorder) {
jQuery.ajax({
type: "post",
url: "update.aspx",
//id:新的排列對應(yīng)的ID,order:原排列順序
data: { id: itemid, order: orderlist.val() },
beforeSend: function() {
show.html("正在更新");
},
success: function() {
show.html("更新成功");
}
});
};
接下來,將ajax更新塊單獨(dú)分出來。這樣程序變得比較整潔,這塊沒有新東西。
//調(diào)用ajax更新方法
var Submit = function(update) {
var order = [];
list.children("li").each(function() {
order.push(this.id);
});
var itemid = order.join(',');
//如果單選框選中,則更新表中排列順序
if (update) {
Update(itemid);
}
else {
show.html("");
}
};
和得到排列順序類似,將ID組成一個(gè)字符串傳遞給了Update()方法。函數(shù)中的參數(shù)update為checkbox是否選中。
//執(zhí)行排列操作
list.sortable({
opacity: 0.7,
update: function() {
Submit(check.attr("checked"));
}
});
最后,執(zhí)行排列操作。后臺部分就是對現(xiàn)在ID對應(yīng)原來排列順序的更新,相信大家并不陌生。
可以看出如果不進(jìn)行數(shù)據(jù)庫操作,該插件只需要調(diào)用sorttable便可完成對元素的拖動(dòng)。
以上就是jQuery拖動(dòng)元素并對元素進(jìn)行重新排序的實(shí)現(xiàn)方法,希望對大家的學(xué)習(xí)有所幫助。
- jquery實(shí)現(xiàn)表格行拖動(dòng)排序
- jQuery-ui插件sortable實(shí)現(xiàn)自由拖動(dòng)排序
- 針對后臺列表table拖拽比較實(shí)用的jquery拖動(dòng)排序
- jQuery仿360導(dǎo)航頁圖標(biāo)拖動(dòng)排序效果代碼分享
- jquery實(shí)現(xiàn)的鼠標(biāo)拖動(dòng)排序Li或Table
- jquery對元素拖動(dòng)排序示例
- 基于JQuery的列表拖動(dòng)排序?qū)崿F(xiàn)代碼
- jQuery實(shí)現(xiàn)移動(dòng)端懸浮拖動(dòng)效果
- jQuery實(shí)現(xiàn)的簡單對話框拖動(dòng)功能示例
- jquery+css實(shí)現(xiàn)移動(dòng)端元素拖動(dòng)排序
相關(guān)文章
jquery教程限制文本框只能輸入數(shù)字和小數(shù)點(diǎn)示例分享
這篇文章主要介紹了JQuery限制文本框只能輸入數(shù)字和小數(shù)點(diǎn)的方法,大家參考使用吧2014-01-01
jQuery實(shí)現(xiàn)圖片預(yù)加載效果
這篇文章分享一款基于jQuery圖片預(yù)加載ydxLazyLoad.js代碼。這是一款基于ydxLazyLoad.js插件實(shí)現(xiàn)的圖片延遲加載特效,感興趣的小伙伴們可以參考一下2015-11-11
jQuery實(shí)現(xiàn)動(dòng)態(tài)添加和刪除input框代碼實(shí)例
這篇文章主要介紹了jQuery實(shí)現(xiàn)動(dòng)態(tài)添加和刪除input框,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
JQuery插件Quicksand實(shí)現(xiàn)超炫的動(dòng)畫洗牌效果
Quicksand這是一個(gè)非常不錯(cuò)的 jQuery 插件,用于實(shí)現(xiàn)動(dòng)畫洗牌效果,十分的實(shí)用,有需要的小伙伴可以參考下。2015-05-05
jQuery EasyUI API 中文文檔 - Parser 解析器
jQuery EasyUI API 中文文檔 - Parser 解析器,使用jQuery EasyUI的朋友可以參考下。2011-09-09
jQuery焦點(diǎn)圖切換特效插件封裝實(shí)例
這篇文章介紹了jQuery焦點(diǎn)圖切換特效插件封裝實(shí)例,有需要的朋友可以參考一下2013-08-08

