這次帶給大家jquery實作元素拖曳排序(附程式碼),jquery實作元素拖曳排序的注意事項有哪些,下面就是實戰案例,一起來看一下。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>jquery学习-jquery对元素拖动排序</title> <style type="text/css"> #show { color: Red; } #list { cursor: move; width: 300px; } #list li { border: solid 1px yellow; float: left; list-style-type : none; margin-top: 10px;
下邊,我們一步一步來實作這個功能。
<span> <p> <input> </p> <p> <input> </p> <ul> <repeater> <itemtemplate> <li>" title=""> <img src="/static/imghwm/default1.png" data-src="<%#Eval(" class="lazy" alt="jquery實作元素拖曳排序(附程式碼)" >" /> </li> </itemtemplate> </repeater> </ul> </span>
有一個單選框,當使用者選取後,拖曳圖片時對資料庫中資料排序進行變更。隱藏域保存原來的圖片排列順序。 ul顯示圖片清單。
為了能看得過去,稍微加了點樣式:
var show = jQuery("#show"); //输出提示 var orderlist = jQuery("#orderlist"); //原顺序 var check = jQuery("#check"); //是否更新到数据库
首先將常用的選擇器保存下來,這樣後邊呼叫就變得比較簡潔。這一部大家肯定沒有問題。 ^_^
//保存原来的排列顺序 var order = []; list.children("li").each(function() { order.push(this.title); //原排列顺序保存在title,得到后更改title jQuery(this).attr("title", "你可以拖动进行排序"); }); orderlist.val(order.join(','));
將原來的排列順序保存到隱藏域。這裡用到了陣列的push()方法,就是將ul每個li中的title(原來的排列順序)加入陣列。最後用join()方法,得到了原排列順序,回傳一個字串。現在排列順序格式為1,2,3 。
//ajax更新 var Update = function(itemid, itemorder) { jQuery.ajax({ type: "post", url: "update.aspx", //id:新的排列对应的ID,order:原排列顺序 data: { id: itemid, order: orderlist.val() }, beforeSend: function() { show.html("正在更新"); }, success: function() { show.html("更新成功"); } }); };
接下來,將ajax更新區塊單獨分出來。這樣程序變得比較整潔,這塊沒有新東西。
//调用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()方法。函數中的參數update為checkbox是否選取。
//执行排列操作 list.sortable({ opacity: 0.7, update: function() { Submit(check.attr("checked")); } }); } <script></script> <script></script> <script> $(document).ready(function () { //保存常用选择器 var list = $("#list"); //ul var show = $("#show"); //输出提示 var orderlist = $("#orderlist"); //原顺序 var check = $("#check"); //是否更新到数据库 //保存原来的排列顺序 var order = []; list.children("li").each(function () { order.push(this.title); //原排列顺序保存在title,得到后更改title $(this).attr("title", "你可以拖动进行排序"); }); orderlist.val(order.join()); //执行排列操作 list.sortable({ axis: 'y',//只能横向拖动 opacity: 0.7,// 移动时的透明度 update: function () {//当排序动作结束时且元素坐标已经发生改变时触发此事件。 Submit(check.attr("checked")); } }); //ajax更新 var Update = function (itemid, itemorder) { $.ajax({ type: "post", url: "update.aspx", data: { id: itemid, order: orderlist.val() }, //id:新的排列对应的ID,order:原排列顺序 beforeSend: function () { show.html("正在更新"); }, success: function (req) { if (req == "100") { show.html("更新成功"); } else if (req == "001") { show.html("失败,请稍后再试"); } else { show.html("参数不全"); } } }); }; //调用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(""); } }; }); </script>
以上是jquery實作元素拖曳排序(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器