Heim  >  Artikel  >  Web-Frontend  >  Wie jQuery das Auf- und Abwärtsbewegen basierend auf der Sortierfunktion implementiert

Wie jQuery das Auf- und Abwärtsbewegen basierend auf der Sortierfunktion implementiert

高洛峰
高洛峰Original
2016-12-05 10:55:062561Durchsuche

Das Beispiel in diesem Artikel beschreibt, wie jQuery-Implementierungen basierend auf der Sortierfunktion nach oben und unten verschoben werden. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Wirkung

Wie jQuery das Auf- und Abwärtsbewegen basierend auf der Sortierfunktion implementiert

Idee,

und angrenzende Elemente sind austauschbar sortiert .

Die Voraussetzung ist, dass jedes Element seinen eigenen Sortierwert hat, der nicht Null ist.

<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%"Wie jQuery das Auf- und Abwärtsbewegen basierend auf der Sortierfunktion implementiert" ></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>

Klicken Sie hier, um die Aufwärts- und Abwärtsmethode auszulösen.

Holen Sie sich die aktuelle ID.

Benachbarte Elemente über jQuery abrufen.

// 上移
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});
          }
        }
      });
  }
}

Hier werden mehrere jQuery-Methoden verwendet, prev(), next(), before(), after(). Und Effekte, fadeOut(), fadeIn(). Und einige einfache logische Urteile und Fähigkeiten.

PHP-Hintergrundverarbeitung,

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;);
}


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn