본 글의 예시는 jQuery를 사용하여 요소를 드래그하고 순서를 바꾸는 구현 방법을 설명합니다. 구체적인 구현 내용은 다음과 같습니다.
렌더링:
위 사진을 보시면 오늘 구현하고 싶은 기능을 보실 수 있습니다. 사용자가 이미지를 드래그하면 이미지의 기존 정렬을 변경하고 테이블의 순서를 업데이트할 수 있습니다. 예를 들어, Google iGoogle이 이미 구현한 것처럼 사용자는 우리 웹사이트의 레이아웃을 마음대로 드래그할 수 있습니다. 이는 사용자 경험을 크게 향상시킵니다.
아래에서는 이 기능을 단계별로 구현해보겠습니다.
<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") %>"> <jQuery 요소 드래그 및 elements_jquery 재정렬 alt="jQuery 요소 드래그 및 elements_jquery 재정렬" src="<%#Eval("Link") %>" /> </li> </ItemTemplate> </asp:Repeater> </ul> </div>
보기 쉽게 하기 위해 약간의 스타일을 추가했습니다.
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(','));
//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更新方法 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(""); } };
//执行排列操作 list.sortable({ opacity: 0.7, update: function() { Submit(check.attr("checked")); } });
데이터베이스 작업이 수행되지 않으면 플러그인은 요소 드래그를 완료하기 위해 sorttable만 호출하면 된다는 것을 알 수 있습니다.
위는 jQuery 요소 드래그 및 순서 변경의 구현 방법입니다. 모든 분들의 학습에 도움이 되기를 바랍니다.