Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jquery-ui sortable любой перетаскиваемый элемент делает первым (https://javascript.ru/forum/jquery/65702-jquery-ui-sortable-lyubojj-peretaskivaemyjj-ehlement-delaet-pervym.html)

WalterScott 03.11.2016 20:43

jquery-ui sortable любой перетаскиваемый элемент делает первым
 
Собственно, помимо изменения порядка элементов драг-н-дропом, там имеется функционал делающий элемент первым по клику. И насколько я понимаю он срабатывает и при перетаскивании.

Вот как бы обнаружить этот код, делающий элемент первым по клику, чтобы для начала хотя бы отключить этот функционал.

Попробовал менять версии jquery-ui - от версии это не зависит.

рони 03.11.2016 20:50

Цитата:

Сообщение от WalterScott
там имеется функционал делающий элемент первым по клику.

где можно это увидеть?

WalterScott 03.11.2016 23:15

Цитата:

Сообщение от рони (Сообщение 433917)
где можно это увидеть?

Так я и надеялся узнать, где в jquery-ui имеется такой функционал, чтобы его либо отключить вовсе, либо сделать так, чтобы он обрабатывал другой элемент, а не картинку, которую пытаются перетащить.

А плагин sortable используется просто:

$('элемент_элементы_в_котором_будут_перетаскиваемы').sortable();


Можно передавать в sortable различные параметры, но они в данном случае не важны.

рони 03.11.2016 23:41

WalterScott,
покажите код, иначе вы единственный свидетель данного чуда.

WalterScott 04.11.2016 15:13

Нашёл код, который вставляет элемент в начало:
var imgDiv = $('#img-div'), imgList = $('.p__image', imgDiv);

imgList.sortable({containment: "parent"});

imgList.on('click', '.img__close, .img__cell', function(e) {
	e.preventDefault();
	var el = $(this);
	if(el.hasClass('img__cell'))
		el.prependTo(imgList);
	else
		el.parent().unbind('mouseenter').trigger('mouseleave').remove();
	return false;
});


Но избавиться от prependTo мне пока не удалось.
Если сделать так
//if(el.hasClass('img__cell'))
	//	el.prependTo(imgList);
	//else
	if(!el.hasClass('img__cell'))
		el.parent().unbind('mouseenter').trigger('mouseleave').remove();

то перетаскивание не работает.

рони 04.11.2016 15:40

WalterScott,
:-?

WalterScott 07.11.2016 16:22

В принципе, таскаются.
Только я ещё добавил к sortable
$('.img__cell').draggable();


Тогда проблема сводится к следующему...
Обработчик
imgList.on('click', '.img__close, .img__cell'

тот самый, который делает элемент первым по клику, срабатывает при отпускании перетаскиваемой картинки. Как мне проверить в этом обработчике, что на элементе $('.img__cell') не было события mouseup?

рони 07.11.2016 16:45

WalterScott,
тихо сам с собою ...


Часовой пояс GMT +3, время: 20:33.