Javascript.RU

Создать новую тему Закрытая тема
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.12.2016, 13:15
Новичок на форуме
Отправить личное сообщение для _Kirill Посмотреть профиль Найти все сообщения от _Kirill
 
Регистрация: 29.12.2016
Сообщений: 4

jQuery UI sortable
Здравствуйте!
Задача в общих чертах такая: если элемент сбрасывается между нижними элементами, то стандартное поведение sortable, а если прямо на нижний элемент, то другое поведение.
Как можно определить на какой элемент был сброшен перетаскиваемый элемент?
  #2 (permalink)  
Старый 29.12.2016, 13:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от _Kirill
Как можно определить на какой элемент был сброшен перетаскиваемый элемент?
По значениям его свойств...
  #3 (permalink)  
Старый 29.12.2016, 13:41
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Вот еще метод есть...
http://jquery-docs.ru/core/index/#subject
  #4 (permalink)  
Старый 29.12.2016, 14:08
Новичок на форуме
Отправить личное сообщение для _Kirill Посмотреть профиль Найти все сообщения от _Kirill
 
Регистрация: 29.12.2016
Сообщений: 4

Сообщение от ksa Посмотреть сообщение
По значениям его свойств...
Ок...
И как получить значения его свойств?
  #5 (permalink)  
Старый 29.12.2016, 14:29
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от _Kirill
И как получить значения его свойств?
Ты хоть бы пример какой тестовый сделал...
  #6 (permalink)  
Старый 29.12.2016, 14:57
Новичок на форуме
Отправить личное сообщение для _Kirill Посмотреть профиль Найти все сообщения от _Kirill
 
Регистрация: 29.12.2016
Сообщений: 4

<div>
        <ul class="sort">
            <li>aaaaa</li>
            <li>bbbbb</li>
            <li>ccccc</li>
            <li>ddddd</li>
            <li>eeeee</li>
            <li>fffff</li>
        </ul>
        <script>
            $(function () {
                $(".sort").sortable({
                    connectWith: "ul",
                    opacity: "0.75",
                });
            });            
        </script>
</div>


Вот если сбросить элемент прямо в другой элемент, нужно узнать, что за элемент был внизу.

Последний раз редактировалось _Kirill, 29.12.2016 в 15:00.
  #7 (permalink)  
Старый 29.12.2016, 15:01
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

_Kirill, это разве пример?
Вот пример!

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
#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>
<script type='text/javascript'>
$( function() {
	$( "#sortable" ).sortable({
		stop: function( event, ui ) {
			var o=$('.ui-state-default');
			alert('Всего '+o.length+' наш '+o.index(ui.item));
		}
	});
	$( "#sortable" ).disableSelection();
});
</script>
</head>
<body>
<ul id="sortable">
	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li>
	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 5</li>
	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 6</li>
	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 7</li>
</ul>
</body>
</html>
  #8 (permalink)  
Старый 29.12.2016, 15:04
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

_Kirill, смотри какие еще события тебе дает сортабле
http://api.jqueryui.com/sortable/
и выбирай из них те, которые тебе подойдут...
  #9 (permalink)  
Старый 29.12.2016, 15:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от _Kirill
если элемент сбрасывается между нижними элементами, то стандартное поведение sortable, а если прямо на нижний элемент, то другое поведение.
Даже вопрос у тебя какой-то странный...
Тебе ведь нужно знать не последним ли стал твой элемент?

Мой пример даст тебе на это ответ.
  #10 (permalink)  
Старый 29.12.2016, 15:25
Новичок на форуме
Отправить личное сообщение для _Kirill Посмотреть профиль Найти все сообщения от _Kirill
 
Регистрация: 29.12.2016
Сообщений: 4

Нет, мне нужно именно знать, что за элемент был внизу в момент дропа

Дело вот в чем: есть иерархическое дерево, в котором все элементы условно делятся на два типа: файлы и папки.
Папки могут содержать дочерние элементы, файлы, естественно, нет.
Ну и проблема вот в чем: если в папке есть хотя бы один дочерний элемент, то функционала sortable вполне достаточно, чтобы добавить в эту папку еще элементы, но если папка пустая, то дропнуть элемент можно только на саму папку. Соответственно нужно узнать что это именно папка и удалить элемент с первоначальной позиции и добавить в эту пустую папку.

Т.е. мне нужно как бы объединить функционал droppable и sortable.
С событиями все понятно, проблема в определении элемента, над которым был дроп.

Последний раз редактировалось _Kirill, 29.12.2016 в 15:37.
Закрытая тема



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery DOM Sortable, Droppable и Draggable Infinity178 jQuery 5 26.12.2016 18:28
Div с overflow-y: scroll, jquery ui droppable и sortable yevgeniyche jQuery 1 29.09.2014 08:08
jQuery UI Sortable. Элементы съезжают BelkinV jQuery 1 29.04.2014 00:47
CODEIGNITER + JQUERY SORTABLE espmh50 AJAX и COMET 0 19.02.2013 07:38
jquery ui sortable + draggable giGnet jQuery 1 08.03.2011 19:37