Dieses Mal werde ich Ihnen JQuery zum Implementieren der Element-Drag-Sortierung (mit Code) vorstellen. Was sind die Vorsichtsmaßnahmen für JQuery zum Implementieren der Element-Drag-Sortierung?
<!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;
Im Folgenden werden wir diese Funktion Schritt für Schritt implementieren.
<span id="show"> <p> <input id="check" type="checkbox" /> </p> <p> <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> </p>
verfügt über ein Optionsfeld. Wenn der Benutzer es auswählt, wird die Sortierung der Daten in der Datenbank geändert, wenn das Bild gezogen wird. Das ausgeblendete Feld speichert die ursprüngliche Reihenfolge der Bilder. ul zeigt die Bilderliste an.
Um es einfacher zu sehen, habe ich einen kleinen Stil hinzugefügt:
var show = jQuery("#show"); //输出提示 var orderlist = jQuery("#orderlist"); //原顺序 var check = jQuery("#check"); //是否更新到数据库
Speichern Sie zunächst die häufig verwendeten Selektoren, damit sie später prägnanter aufgerufen werden können. Damit wird sicherlich jeder kein Problem haben. ^_^
//保存原来的排列顺序 var order = []; list.children("li").each(function() { order.push(this.title); //原排列顺序保存在title,得到后更改title jQuery(this).attr("title", "你可以拖动进行排序"); }); orderlist.val(order.join(','));
Speichern Sie die ursprüngliche Sortierreihenfolge im ausgeblendeten Feld. Hier wird die push()-Methode des Arrays verwendet, die darin besteht, den Titel (ursprüngliche Anordnungsreihenfolge) in jedem Li von ul zum Array hinzuzufügen. Schließlich wird die Methode „join()“ verwendet, um die ursprüngliche Anordnungsreihenfolge abzurufen und eine Zeichenfolge zurückzugeben. Das Sortierreihenfolgeformat ist jetzt 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("更新成功"); } }); };
Als nächstes trennen Sie den Ajax-Update-Block. Dadurch wird das Programm sauberer und es gibt in diesem Bereich nichts Neues.
//调用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(""); } };
Ähnlich wie beim Abrufen der Sortierreihenfolge wird die ID in einen String zusammengestellt und an die Update()-Methode übergeben. Die Parameteraktualisierung in der Funktion hängt davon ab, ob das Kontrollkästchen aktiviert ist.
//执行排列操作 list.sortable({ opacity: 0.7, update: function() { Submit(check.attr("checked")); } }); } </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.js"></script> <script type="text/javascript"> $(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> </head> <body> <form method="post" action="jquery-drag-order-sort.aspx" id="form1"> <p class="aspNetHidden"> <input type="hidden" name="VIEWSTATE" id="VIEWSTATE" value="/wEPDwUJNDc3MzMwNjM4D2QWAgIBD2QWAgIBDxYCHgtfIUl0ZW1Db3VudAIDFgZmD2QWAmYPFQMCMTQBMSdodHRwOi8vd3d3LmJhaWR1LmNvbS9pbWcvYmFpZHVfbG9nby5naWZkAgEPZBYCZg8VAwIxMwEyL2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS5oay9pbWFnZXMvc3Jwci9sb2dvM3cucG5nZAICD2QWAmYPFQMCMTYBMyxodHRwOi8vaW1nMy5jbi5tc24uY29tL2ltYWdlcy8wODA5L2xvZ28xLnBuZ2RkDx67fZ2swhZiUjvFaE+ziATRZTct5b77PuWvqXLCUlg=" /> </p> <span id="show"></span> <h1>jQuery对元素拖动排序</h1> <p>拖动时同时更新数据库数据:<input type="checkbox" id="check" /></p> <p> <input type="hidden" id="orderlist" /> <ul id="list"> <li id="14" title="1"> <img alt="img" src="http://www.baidu.com/img/baidu_logo.gif" /></li> <li id="13" title="2"> <img alt="img" src="http://www.google.com.hk/images/srpr/logo3w.png" /></li> <li id="16" title="3"> <img alt="img" src="http://img3.cn.msn.com/images/0809/logo1.png" /></li> </ul> </p> </form> </body> </html>
Führen Sie abschließend den Anordnungsvorgang durch. Der Hintergrundteil ist die Aktualisierung der aktuellen ID entsprechend der ursprünglichen Anordnungsreihenfolge. Ich glaube, jeder ist damit vertraut.
Es ist ersichtlich, dass, wenn kein Datenbankvorgang ausgeführt wird, das Plug-in nur sorttable aufrufen muss, um das Ziehen von Elementen abzuschließen.
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Detaillierte Erläuterung der Schritte zur Implementierung der Tabellensortierung mit sortElements
jquery implementiert die Tabellensortierung + real -Zeitsuchfunktion
Das obige ist der detaillierte Inhalt vonjquery implementiert Drag-Sortierung von Elementen (Code angehängt). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!