首頁  >  文章  >  web前端  >  jQuery基於排序功能實現上移、下移的方法

jQuery基於排序功能實現上移、下移的方法

高洛峰
高洛峰原創
2016-12-05 10:55:062559瀏覽

本文實例講述了jQuery基於排序功能實現上移、下移的方法。分享給大家參考,具體如下:

效果

jQuery基於排序功能實現上移、下移的方法

思路,

跟相鄰元素,互換sort。

前提是每個元素都有自己的sort值,不為零。

<tr id="{sh:$vo.id}">
  <td>
    <span onclick="up(this);" class="glyphicon glyphicon-arrow-up text-danger up" style="cursor: pointer;" title="上移" aria-hidden="true"></span>
       
    <span onclick="down(this);" class="glyphicon glyphicon-arrow-down text-danger down" style="cursor: pointer;" title="下移" aria-hidden="true"></span>
  </td>
  <td>
    <span title="{sh:$vo.user_id}">{sh:$vo.store_name}</span>
  </td>
  <td class="center"><a href="{sh:$vo.logo}" target="_blank"><img  src="{sh:$vo.logo}"    style="max-width:90%"jQuery基於排序功能實現上移、下移的方法" ></td>
  <td class="center">{sh:$vo.category_name}</td>
  <td class="center edit">
    <a val="{sh:$vo.store_id}" onclick="view(this);" class="view btn btn-success" href="javascript:void(0);" title="查看">
      <i class="halflings-icon white zoom-in"></i>
    </a>
  </td>
</tr>

   

點擊,觸發up方法,down方法。

獲取當前id。

透過jQuery,取得相鄰的元素。

// 上移
function up(obj){
  var $tr = $(obj).parents("tr");
  if ($tr.index() != 0) {
    var current_id  = $tr.attr(&#39;id&#39;);
    var exchange_id  = $tr.prev("tr").attr(&#39;id&#39;);
    $.ajax({
      url: &#39;{sh::U("Mall/ajax","todo=exchange_sort")}&#39;,
      type: &#39;POST&#39;,
      data: &#39;current_id=&#39;+current_id+&#39;&exchange_id=&#39;+exchange_id,
      success:function(json) {
        if (json == 1) {
          $tr.fadeOut().fadeIn();
          $tr.prev().before($tr);
          layer.msg(&#39;上移成功&#39;, {icon: 1});
        } else {
          layer.msg(&#39;上移失败&#39;, {icon: 2});
        }
      }
    });
  }
}
// 下移
function down(obj) {
  var len = $(".down").length;
  var $tr = $(obj).parents("tr");
    if ($tr.index() != len - 1) {
      var current_id  = $tr.attr(&#39;id&#39;);
      var exchange_id  = $tr.next("tr").attr(&#39;id&#39;);
      $.ajax({
        url: &#39;{sh::U("Mall/ajax","todo=exchange_sort")}&#39;,
        type: &#39;POST&#39;,
        data: &#39;current_id=&#39;+current_id+&#39;&exchange_id=&#39;+exchange_id,
        success:function(json) {
          if (json == 1) {
            $tr.fadeOut().fadeIn();
            $tr.next().after($tr);
            layer.msg(&#39;下移成功&#39;, {icon: 1});
          } else {
            layer.msg(&#39;下移失败&#39;, {icon: 2});
          }
        }
      });
  }
}

   

這裡用到了幾個jQuery方法,prev(),next(),before(),after()。以及效果,fadeOut(),fadeIn()。以及一些簡單的邏輯判斷和技巧。

php後台處理,

case &#39;exchange_sort&#39;:
$mallShopModel = M(&#39;Mall_shop&#39;);
$current_id  = $this->_post(&#39;current_id&#39;,&#39;trim&#39;);
$exchange_id  = $this->_post(&#39;exchange_id&#39;,&#39;trim&#39;);
$current_sort = $mallShopModel->where(array(&#39;id&#39;=>$exchange_id))->getField(&#39;sort&#39;);
$exchange_sort = $mallShopModel->where(array(&#39;id&#39;=>$current_id))->getField(&#39;sort&#39;);
$cdata[&#39;id&#39;]  = $current_id;
$cdata[&#39;sort&#39;] = $current_sort;
$cres     = $mallShopModel->save($cdata);
$edata[&#39;id&#39;]  = $exchange_id;
$edata[&#39;sort&#39;]  = $exchange_sort;
$eres     = $mallShopModel->save($edata);
if ($cres !== FALSE && $eres !== FALSE){
  exit(&#39;1&#39;);
} else {
  exit(&#39;2&#39;);
}

   


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn