国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery拖動元素并對元素進(jìn)行重新排序

2019-11-20 10:53:42
字體:
供稿:網(wǎng)友

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

效果圖:

具體內(nèi)容如下:

從上圖可以看出我們今天要實現(xiàn)的功能。當(dāng)用戶拖動一個圖片時,就能改變圖片的已有排序并更新表中的排列順序。比如用戶可以隨意拖動我們網(wǎng)站中的布局,如谷歌iGoogle就已經(jīng)實現(xiàn)了。這樣便很好的提高了用戶體驗。

下邊,我們一步一步來實現(xiàn)這個功能。

<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>

有一個單選框,當(dāng)用戶選中后,拖動圖片時對數(shù)據(jù)庫中數(shù)據(jù)排序進(jìn)行更改。隱藏域保存原來的圖片排列順序。ul顯示圖片列表。

為了能看得過去,稍微加了點樣式:

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", "你可以拖動進(jìn)行排序"); }); orderlist.val(order.join(','));

保存原來的排列順序到隱藏域。這里用到了數(shù)組的push()方法,就是將ul每個li中的title(原來的排列順序)添加到數(shù)組中。最后用join()方法,得到了原排列順序,返回一個字符串。現(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更新塊單獨分出來。這樣程序變得比較整潔,這塊沒有新東西。

//調(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組成一個字符串傳遞給了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便可完成對元素的拖動。

以上就是jQuery拖動元素并對元素進(jìn)行重新排序的實現(xiàn)方法,希望對大家的學(xué)習(xí)有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 闽侯县| 太保市| 化隆| 育儿| 阿拉善左旗| 团风县| 揭西县| 潮州市| 左贡县| 孝感市| 吴桥县| 耒阳市| 米泉市| 凤山市| 锦屏县| 桂平市| 会东县| 纳雍县| 梧州市| 定南县| 大石桥市| 青龙| 谢通门县| 巴青县| 嘉鱼县| 文昌市| 洪江市| 盘锦市| 天等县| 北票市| 舞阳县| 上犹县| 谷城县| 上饶县| 涟水县| 云霄县| 富裕县| 叶城县| 新密市| 九寨沟县| 磴口县|