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

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

高洛峰
Freigeben: 2016-12-05 10:55:06
Original
2639 Leute haben es durchsucht

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>
Nach dem Login kopieren

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});
          }
        }
      });
  }
}
Nach dem Login kopieren

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;);
}
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage