JQuery UI проблема отправки строки, извлеченной из объекта ui.item - PullRequest
1 голос
/ 13 октября 2010

У меня есть 2 сортируемых, связанных списка с фотографиями: альбом и избранное.Когда я перетаскиваю элемент из Альбома -> Избранное, я хочу проверить, есть ли он в списке Избранное.

Если это так, НЕ принимайте его (возможно, отключите сортировку или что-то еще?) Если это не так, клонируйте элемент обратно в исходный индекс в альбомах (связанные сортируемые списки перемещают только элементы, поэтомуэто имитирует копирование)

У меня есть функция, которая проверяет, есть ли фотографии в списке Избранное:

function isInFavorites(url) {
    return $(".favorites li img[src*='" + url + "']").length > 0;
}

Эта функция работает как ожидалось ...Однако, когда я извлекаю scr attr с помощью ui.item и передаю аргумент этой функции, я всегда получаю истинное логическое значение ??

var itemSrc = ui.item.find("img").attr("src");
if (isInFavorites(itemSrc)) { alert('item allready in favorites, do not accept'); } 
else { alert('OK, now clone back to album'); }

Я долго ломал голову над этим и был бы признателен за некоторыеПомогите!JS Fiddle можно найти здесь: http://jsfiddle.net/tunafish/CTps3/

Приветствия!

1 Ответ

1 голос
/ 13 октября 2010

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

function isInFavorites(url) {
    return $(".favorites li img[src*='" + url + "']").length > 0;
}

Это событие запускается ПОСЛЕ перемещения элемента.если это дубликат, у вас будет длина 2, но у вас всегда будет длина 1, потому что вы только что переместили элемент в нижний список.

быстрое исправление для проверки $(".favorites li img[src*='" + url + "']").length > 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...