Latest web development tutorials

jQuery UI contoh - menyortir (Sortable)

Menggunakan mouse untuk menyesuaikan diurutkan daftar atau grid elemen.

Untuk rincian lebih lanjut tentang interaksi sortable, lihat dokumentasi API widget sortable (diurutkan Widget) .

Fungsi standar

Fitur diurutkan diaktifkan pada setiap elemen DOM. Klik dan tarik mouse untuk daftar unsur lokasi baru, item lainnya akan secara otomatis disesuaikan. Secara default, diurutkan setiap entri bersama draggable atribut.

<! DOCTYPE html>
<Html lang = "en">
<Head>
  <Meta charset = "utf-8">
  <Title> jQuery UI menyortir (Sortable) - Fungsi standar </ title>
  <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script>
  <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script>
  <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css">
  <Gaya>
  #sortable {list-style-type: none; margin: 0; padding: 0; width: 60%;}
  #sortable li {margin: 0 3px 3px 3px; padding: 0.4em; padding-left: 1.5em; font-size: 1.4em; height: 18px;}
  rentang #sortable li {position: absolute; margin-left: -1.3em;}
  </ Style>
  <Script>
  $ (Fungsi () {
    $ ( "#sortable") .sortable ();
    $ ( "#sortable") .disableSelection ();
  });
  </ Script>
</ Kepala>
<Body>
 
<Ul id = "diurutkan">
  <Class Li = "ui-negara-default"> <span class = "ui-icon ui-icon-arrowthick-2-ns"> </ span> Item 1 </ li>
  <Class Li = "ui-negara-default"> <span class = "ui-icon ui-icon-arrowthick-2-ns"> </ span> Item 2 </ li>
  <Class Li = "ui-negara-default"> <span class = "ui-icon ui-icon-arrowthick-2-ns"> </ span> Butir 3 </ li>
  <Class Li = "ui-negara-default"> <span class = "ui-icon ui-icon-arrowthick-2-ns"> </ span> Item 4 </ li>
  <Class Li = "ui-negara-default"> <span class = "ui-icon ui-icon-arrowthick-2-ns"> </ span> Butir 5 </ li>
  <Class Li = "ui-negara-default"> <span class = "ui-icon ui-icon-arrowthick-2-ns"> </ span> Butir 6 </ li>
  <Class Li = "ui-negara-default"> <span class = "ui-icon ui-icon-arrowthick-2-ns"> </ span> Butir 7 </ li>
</ Ul>
 
 
</ Body>
</ Html>

Daftar koneksi

Oleh connectWith lewat pilihan pemilih untuk menempatkan daftar unsur-unsur dalam daftar diurutkan ke yang lain, dan sebaliknya. Cara termudah adalah dengan daftar semua kelompok yang relevan dari kelas CSS, dan kemudian lulus kelas untuk fungsi diurutkan (misalnya, connectWith: '.myclass' ).

<! DOCTYPE html>
<Html lang = "en">
<Head>
  <Meta charset = "utf-8">
  <Title> jQuery UI menyortir (Sortable) - daftar koneksi </ title>
  <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script>
  <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script>
  <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css">
  <Gaya>
  # Sortable1, # sortable2 {list-style-type: none; margin: 0; padding: 0 0 2.5em; float: left; margin-right: 10px;}
  # Sortable1 li, # sortable2 li {margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; width: 120px;}
  </ Style>
  <Script>
  $ (Fungsi () {
    $ ( "# Sortable1, # sortable2") .sortable ({
      connectwith: ".connectedSortable"
    .}) DisableSelection ();
  });
  </ Script>
</ Kepala>
<Body>
 
<Ul id = "sortable1" class = "connectedSortable">
  <Li class = "ui-negara-default"> Item 1 </ li>
  <Li class = "ui-negara-default"> Item 2 </ li>
  <Li class = "ui-negara-default"> Item 3 </ li>
  <Li class = "ui-negara-default"> Item 4 </ li>
  <Li class = "ui-negara-default"> Butir 5 </ li>
</ Ul>
 
<Ul id = "sortable2" class = "connectedSortable">
  <Li class = "ui-negara-highlight"> Item 1 </ li>
  <Li class = "ui-negara-highlight"> Item 2 </ li>
  <Li class = "ui-negara-highlight"> Item 3 </ li>
  <Li class = "ui-negara-highlight"> Item 4 </ li>
  <Li class = "ui-negara-highlight"> Butir 5 </ li>
</ Ul>
 
 
</ Body>
</ Html>

tab Daftar koneksi

Dengan menempatkan bagian atas daftar item ke tab yang sesuai untuk menempatkan daftar unsur-unsur dalam daftar diurutkan ke yang lain, dan sebaliknya.

<! DOCTYPE html>
<Html lang = "en">
<Head>
  <Meta charset = "utf-8">
  <Title> jQuery UI menyortir (Sortable) - tab daftar sambungan </ title>
  <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script>
  <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script>
  <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css">
  <Gaya>
  # Sortable1 li, # sortable2 li {margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; width: 120px;}
  </ Style>
  <Script>
  $ (Fungsi () {
    $ ( "# Sortable1, # sortable2") .sortable () disableSelection () .;
 
    var $ tab = $ ( "#tabs") .tabs ();
 
    var $ tab_items = $ ( "ul: li pertama", $ tab) .droppable ({
      menerima: "li .connectedSortable",
      hoverClass: "ui-negara melayang-layang",
      menjatuhkan: function (event, ui) {
        var $ item = $ (ini);
        var $ list = $ ($ item.find ( "a") attr ( "href"))
          .find ( ".connectedSortable");
 
        ui.draggable.hide ( "lambat", function () {
          $ Tabs.tabs ( "pilihan", "aktif", $ tab_items.index ($ item));
          $ (Ini) .appendTo ($ list) .show ( "lambat");
        });
      }
    });
  });
  </ Script>
</ Kepala>
<Body>
 
<Div id = "tab">
  <Ul>
    <Li> <a href="#tabs-1"> Nunc tincidunt </a> </ li>
    <Li> <a href="#tabs-2"> Proin dolor </a> </ li>
  </ Ul>
  <Div id = "tab-1">
    <Ul id = "sortable1" class = "connectedSortable ui-helper-ulang">
      <Li class = "ui-negara-default"> Item 1 </ li>
      <Li class = "ui-negara-default"> Item 2 </ li>
      <Li class = "ui-negara-default"> Item 3 </ li>
      <Li class = "ui-negara-default"> Item 4 </ li>
      <Li class = "ui-negara-default"> Butir 5 </ li>
    </ Ul>
  </ Div>
  <Div id = "tab-2">
    <Ul id = "sortable2" class = "connectedSortable ui-helper-ulang">
      <Li class = "ui-negara-highlight"> Item 1 </ li>
      <Li class = "ui-negara-highlight"> Item 2 </ li>
      <Li class = "ui-negara-highlight"> Item 3 </ li>
      <Li class = "ui-negara-highlight"> Item 4 </ li>
      <Li class = "ui-negara-highlight"> Butir 5 </ li>
    </ Ul>
  </ Div>
</ Div>
 
 
</ Body>
</ Html>

mulai tertunda

Tertunda oleh waktu tunda dan jarak untuk mencegah kecelakaan semacam. Dengan delay milidetik pilihan harus ditetapkan sebelum awal hambatan semacam itu. Dengan distance piksel pilihan harus ditetapkan sebelum awal hambatan semacam itu.

<! DOCTYPE html>
<Html lang = "en">
<Head>
  <Meta charset = "utf-8">
  <Title> jQuery UI menyortir (Sortable) - tertunda start </ title>
  <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script>
  <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script>
  <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css">
  <Gaya>
  # Sortable1, # sortable2 {list-style-type: none; margin: 0; padding: 0; margin-bottom: 15px; zoom: 1;}
  # Sortable1 li, # sortable2 li {margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; width: 95%;}
  </ Style>
  <Script>
  $ (Fungsi () {
    $ ( "# Sortable1") .sortable ({
      delay: 300
    });
 
    $ ( "# Sortable2") .sortable ({
      Jarak: 15
    });
 
    $ ( "Li") .disableSelection ();
  });
  </ Script>
</ Kepala>
<Body>
 
<Class H3 = "docs"> waktu tunda 300ms: </ h3>
 
<Ul id = "sortable1">
  <Li class = "ui-negara-default"> Item 1 </ li>
  <Li class = "ui-negara-default"> Item 2 </ li>
  <Li class = "ui-negara-default"> Item 3 </ li>
  <Li class = "ui-negara-default"> Item 4 </ li>
</ Ul>
 
<Class H3 = "docs"> delay jarak 15px: </ h3>
 
<Ul id = "sortable2">
  <Li class = "ui-negara-default"> Item 1 </ li>
  <Li class = "ui-negara-default"> Item 2 </ li>
  <Li class = "ui-negara-default"> Item 3 </ li>
  <Li class = "ui-negara-default"> Item 4 </ li>
</ Ul>
 
 
</ Body>
</ Html>

Hal ini ditampilkan sebagai kotak

Mari entri diurutkan ditampilkan sebagai kotak, sehingga mereka menggunakan CSS dengan dimensi yang sama dan tampilan mengambang.

<! DOCTYPE html>
<Html lang = "en">
<Head>
  <Meta charset = "utf-8">
  <Title> jQuery UI menyortir (Sortable) - menampilkan grid </ title>
  <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script>
  <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script>
  <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css">
  <Gaya>
  #sortable {list-style-type: none; margin: 0; padding: 0; width: 450px;}
  #sortable li {margin: 3px 3px 3px 0; padding: 1px; float: left; width: 100px; height: 90px; font-size: 4em; text-align: center;}
  </ Style>
  <Script>
  $ (Fungsi () {
    $ ( "#sortable") .sortable ();
    $ ( "#sortable") .disableSelection ();
  });
  </ Script>
</ Kepala>
<Body>
 
<Ul id = "diurutkan">
  <Class Li = "ui-negara-default"> 1 </ li>
  <Class Li = "ui-negara-default"> 2 </ li>
  <Class Li = "ui-negara-default"> 3 </ li>
  <Class Li = "ui-negara-default"> 4 </ li>
  <Class Li = "ui-negara-default"> 5 </ li>
  <Class Li = "ui-negara-default"> 6 </ li>
  <Class Li = "ui-negara-default"> 7 </ li>
  <Class Li = "ui-negara-default"> 8 </ li>
  <Class Li = "ui-negara-default"> 9 </ li>
  <Class Li = "ui-negara-default"> 10 </ li>
  <Class Li = "ui-negara-default"> 11 </ li>
  <Class Li = "ui-negara-default"> 12 </ li>
</ Ul>
 
 
</ Body>
</ Html>

Tempatkan placeholder

Ketika menyeret entri diurutkan ke lokasi baru, entri lain akan membuat ruang untuk entri. Meminta placeholder pilihan transfer untuk menentukan kelas kosong gaya visual. nilai Boolean forcePlaceholderSize opsi untuk mengatur ukuran placeholder.

<! DOCTYPE html>
<Html lang = "en">
<Head>
  <Meta charset = "utf-8">
  <Title> jQuery UI menyortir (Sortable) - ditempatkan pengganti </ title>
  <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script>
  <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script>
  <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css">
  <Gaya>
  #sortable {list-style-type: none; margin: 0; padding: 0; width: 60%;}
  #sortable li {margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; height: 1.5em;}
  html> tubuh #sortable li {height: 1.5em; line-height: 1.2em;}
  Ui-negara sorot {height: 1.5em; line-height: 1.2em;}
  </ Style>
  <Script>
  $ (Fungsi () {
    $ ( "#sortable") .sortable ({
      placeholder: "ui-negara-highlight"
    });
    $ ( "#sortable") .disableSelection ();
  });
  </ Script>
</ Kepala>
<Body>
 
<Ul id = "diurutkan">
  <Li class = "ui-negara-default"> Item 1 </ li>
  <Li class = "ui-negara-default"> Item 2 </ li>
  <Li class = "ui-negara-default"> Item 3 </ li>
  <Li class = "ui-negara-default"> Item 4 </ li>
  <Li class = "ui-negara-default"> Butir 5 </ li>
  <Li class = "ui-negara-default"> Item 6 </ li>
  <Li class = "ui-negara-default"> Butir 7 </ li>
</ Ul>
 
 
</ Body>
</ Html>

Pengolahan daftar kosong

oleh Opsi disetel false , untuk mencegah daftar semua entri ditempatkan ke dalam daftar kosong terpisah. Secara default, entri diurutkan dapat ditempatkan ke dalam daftar kosong.

<! DOCTYPE html>
<Html lang = "en">
<Head>
  <Meta charset = "utf-8">
  <Title> jQuery UI menyortir (Sortable) - penanganan daftar kosong </ title>
  <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script>
  <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script>
  <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css">
  <Gaya>
  # Sortable1, # sortable2, # sortable3 {list-style-type: none; margin: 0; padding: 0; float: left; margin-right: 10px; background: #eee; padding: 5px; width: 143px;}
  # Sortable1 li, # sortable2 li, # sortable3 li {margin: 5px; padding: 5px; font-size: 1.2em; width: 120px;}
  </ Style>
  <Script>
  $ (Fungsi () {
    $ ( "Ul.droptrue") .sortable ({
      connectwith: "ul"
    });
 
    $ ( "Ul.dropfalse") .sortable ({
      connectwith: "ul",
      dropOnEmpty: false
    });
 
    $ ( "# Sortable1, # sortable2, # sortable3") .disableSelection ();
  });
  </ Script>
</ Kepala>
<Body>
 
<Ul id = "sortable1" class = "droptrue">
  <Class Li = "ui-negara-default"> dapat ditempatkan .. </ li>
  <Class Li = "ui-negara-default"> .. daftar kosong </ li>
  <Li class = "ui-negara-default"> Item 3 </ li>
  <Li class = "ui-negara-default"> Item 4 </ li>
  <Li class = "ui-negara-default"> Butir 5 </ li>
</ Ul>
 
<Ul id = "sortable2" class = "dropfalse">
  <Class Li = "ui-negara-highlight"> tidak dapat ditempatkan .. </ li>
  <Class Li = "ui-negara-highlight"> .. daftar kosong </ li>
  <Li class = "ui-negara-highlight"> Item 3 </ li>
  <Li class = "ui-negara-highlight"> Item 4 </ li>
  <Li class = "ui-negara-highlight"> Butir 5 </ li>
</ Ul>
 
<Ul id = "sortable3" class = "droptrue">
</ Ul>
 
style="clear:both"> <br
 
 
</ Body>
</ Html>

Sertakan / Kecualikan entri

Ditunjuk oleh items lulus jQuery pilihan pemilih yang item dapat diurutkan. Pilihan ini luar proyek tidak dapat dipesan, tetapi mereka tidak valid sasaran diurutkan entri.

Jika Anda ingin mencegah entri tertentu diurutkan, untuk cancel pilihan untuk melewati pemilih jQuery. Dibatalkan entri masih berlaku menyortir sasaran entri lainnya.

<! DOCTYPE html>
<Html lang = "en">
<Head>
  <Meta charset = "utf-8">
  <Title> jQuery UI menyortir (Sortable) - Sertakan / Kecualikan entri </ title>
  <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script>
  <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script>
  <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css">
  <Gaya>
  # Sortable1, # sortable2 {list-style-type: none; margin: 0; padding: 0; zoom: 1;}
  # Sortable1 li, # sortable2 li {margin: 0 5px 5px 5px; padding: 3px; width: 90%;}
  </ Style>
  <Script>
  $ (Fungsi () {
    $ ( "# Sortable1") .sortable ({
      item: "li: tidak (Ui-negara penyandang cacat)"
    });
 
    $ ( "# Sortable2") .sortable ({
      membatalkan: "Ui-negara-cacat"
    });
 
    $ ( "# Sortable1 li, # sortable2 li") .disableSelection ();
  });
  </ Script>
</ Kepala>
<Body>
 
<Class H3 = "docs"> menentukan item yang diurutkan: </ h3>
 
<Ul id = "sortable1">
  <Li class = "ui-negara-default"> Item 1 </ li>
  <Class Li = "ui-negara-default ui-negara-cacat"> (saya tidak diurutkan atau target penurunan) </ li>
  <Class Li = "ui-negara-default ui-negara-cacat"> (saya tidak diurutkan atau target penurunan) </ li>
  <Li class = "ui-negara-default"> Item 4 </ li>
</ Ul>
 
<Class H3 = "docs"> membatalkan pesanan (tapi sebagai target penurunan): </ h3>
 
<Ul id = "sortable2">
  <Li class = "ui-negara-default"> Item 1 </ li>
  <Class Li = "ui-negara-default ui-negara-cacat"> (saya tidak diurutkan) </ li>
  <Class Li = "ui-negara-default ui-negara-cacat"> (saya tidak diurutkan) </ li>
  <Li class = "ui-negara-default"> Item 4 </ li>
</ Ul>
 
 
</ Body>
</ Html>

komponen Portal (Portlets)

Aktifkan komponen Portal (gaya div) sebagai diurutkan, dan menggunakan connectWith pilihan untuk memungkinkan komunikasi antara kolom semacam.

<! DOCTYPE html>
<Html lang = "en">
<Head>
  <Meta charset = "utf-8">
  <Title> jQuery UI menyortir (Sortable) - komponen Portal (Portlets) </ title>
  <Link rel = "stylesheet" href = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <Script src = "// code.jquery.com/jquery-1.9.1.js"> </ script>
  <Script src = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script>
  <Link rel = "stylesheet" href = "http://jqueryui.com/resources/demos/style.css">
  <Gaya>
  body {
    min-width: 520px;
  }
  .column {
    width: 170px;
    float: kiri;
    padding-bottom: 100px;
  }
  .portlet {
    margin: 0 1em 1em 0;
    padding: 0.3em;
  }
  .portlet-header {
    padding: 0.2em 0.3em;
    margin-bottom: 0.5em;
    position: relative;
  }
  .portlet-ubah {
    position: absolute;
    top: 50%;
    kanan: 0;
    margin-top: -8px;
  }
  .portlet-konten {
    padding: 0.4em;
  }
  .portlet-placeholder {
    border: 1px dotted hitam;
    margin: 0 1em 1em 0;
    height: 50px;
  }
  </ Style>
  <Script>
  $ (Fungsi () {
    $ ( ".column") .sortable ({
      connectwith: ".column",
      menangani: ".portlet-header",
      membatalkan: ".portlet-ubah",
      placeholder: "portlet-placeholder ui-sudut-semua"
    });
 
    $ ( ".portlet")
      .addClass ( "ui-widget ui-widget-konten ui-helper-clearfix ui-sudut-semua")
      .find ( ".portlet-header")
        .addClass ( "ui-widget-header ui-sudut-semua")
        .prepend ( "<span class = 'ui-icon ui-icon-minusthick portlet-ubah'> </ span>");
 
    $ ( ".portlet-Beralih") .Klik (function () {
      icon var = $ (ini);
      icon.toggleClass ( "ui-icon-minusthick ui-icon-plusthick");
      icon.closest ( ".portlet") .find ( ".portlet-konten") .toggle ();
    });
  });
  </ Script>
</ Kepala>
<Body>
 
<Class Div = "kolom">
 
  <Class Div = "portlet">
    <Div class = "portlet-header"> Berlangganan </ div>
    <Div class = "portlet-content"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit </ div>
  </ Div>
 
  <Class Div = "portlet">
    <Class Div = "portlet-header"> berita </ ​​div>
    <Div class = "portlet-content"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit </ div>
  </ Div>
 
</ Div>
 
<Class Div = "kolom">
 
  <Class Div = "portlet">
    <Class Div = "portlet-header"> keranjang </ div>
    <Div class = "portlet-content"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit </ div>
  </ Div>
 
</ Div>
 
<Class Div = "kolom">
 
  <Class Div = "portlet">
    <Div class = "portlet-header"> di </ div>
    <Div class = "portlet-content"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit </ div>
  </ Div>
 
  <Class Div = "portlet">
    <Class Div = "portlet-header"> Gambar </ div>
    <Div class = "portlet-content"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit </ div>
  </ Div>
 
</ Div>
 
 
</ Body>
</ Html>