25 февраля 2013
7357
JQuery сортировка sortable

JQuery сортировка sortable

JQuery
Демонстрация » Скачать »

В прошлом уроке мы изучили JQuery закладки tabs, во-второйм уроке из этой серии по JQuery UI - сортировка sortable. Назначение сортировки - порядок элементов в списке, которые задаются при определенной выборке. Допустим, Вам нужно изменить порядок элементов, их имеется четыре:  Разработка сайтов, Разработка дизайна, Продвижение сайтов и Обслуживание ПК. Нужно сделать, чтобы элемент Разработка сайтов поменялся местами с элементом Продвижением сайтов - при этом, соответственно, меняется и порядок элементов, это называется сортировкой. Но тут только имеется использование JQuery, без какого-либо сохранения в базе данных, поэтому, если Вам нужен скрипт который будет еще и сохранять позиции, - то лучше посмотрите урок сортировка перетаскиванием.

 

Перейдем непосредственно, к самому коду. В демо-версии представлены три варианта сортировки, ознакомтесь, изучите и поймите принцип работы элементов в списке.

Сначала подключаем стили и библиотеки.

 

<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"> </script>
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"> </script>

 

Теперь перейдем к трем вариантам сортировки. 

 

Первый пример. Обычная сортировка. 

 

CSS.

 

<style>
#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; }
#sortable li span { position: absolute; margin-left: -1.3em; }
</style>

 

JQuery.

 

<script>
$(function() {
$( "#sortable" ).sortable();
$( "#sortable" ).disableSelection();
});
</script>

 

HTML.

 

 

<ul id="sortable">
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>
Разработка сайтов</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>
Разработка дизайна</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>
Продвижение сайтов</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>
Обслуживание ПК</li>
</ul>

 

 

2. Сортировка: соединение списков.

 

CSS.

 

<style>
#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>

 

JQuery.

 

<script>
$(function() {
$( "#sortable1, #sortable2" ).sortable({
connectWith: ".connectedSortable"
}).disableSelection();
});
</script>

 

HTML.

 

<ul id="sortable1" class="connectedSortable">
<li class="ui-state-default">Разработка сайтов</li>
<li class="ui-state-default">Разработка дизайна</li>
</ul>
<ul id="sortable2" class="connectedSortable">
<li class="ui-state-highlight">Продвижение сайтов</li>
<li class="ui-state-highlight">Обслуживание ПК</li>
</ul>

3. Сортировка: портлет.

 

CSS.

 

<style>
.column { width: 600px; float: left; padding-bottom: 100px; }
.portlet { margin: 0 1em 1em 0; }
.portlet-header { margin: 0.3em; padding-bottom: 4px; 
padding-left: 0.2em; }
.portlet-header .ui-icon { float: right; }
.portlet-content { padding: 0.4em; }
.ui-sortable-placeholder { border: 1px dotted black; visibility: 
visible !important; height: 50px !important; }
.ui-sortable-placeholder * { visibility: hidden; }
</style>

 

JQuery.

 

<script>
$(function() {
$( ".column" ).sortable({
connectWith: ".column"
});
$( ".portlet" ).addClass( "ui-widget ui-widget-content
ui-helper-clearfix ui-corner-all" )
.find( ".portlet-header" )
.addClass( "ui-widget-header ui-corner-all" )
.prepend( "<span class='ui-icon ui-icon-minusthick'>
</span>")
.end()
.find( ".portlet-content" );
$( ".portlet-header .ui-icon" ).click(function() {
$( this ).toggleClass( "ui-icon-minusthick" ).toggleClass
( "ui-icon-plusthick" );
$( this ).parents( ".portlet:first" ).find
( ".portlet-content" ).toggle();
});
$( ".column" ).disableSelection();
});
</script>

 

HTML.

 

<div class="column">

<div class="portlet">
<div class="portlet-header">Разработка сайтов</div>
<div class="portlet-content">Текст</div>
</div>


<div class="portlet">
<div class="portlet-header">Разработка дизайна</div>
<div class="portlet-content">Текст</div>
</div>


<div class="column">
<div class="portlet">
<div class="portlet-header">Продвижение сайтов</div>
<div class="portlet-content">Текст</div>
</div>


<div class="column">
<div class="portlet">
<div class="portlet-header">Обслуживание ПК</div>
<div class="portlet-content">Текст</div>
</div>

</div>

 

На этом в принципе все, в следующем уроке мы рассмотрим JQuery слайдер. Спасибо за внимание!



Источник материала »