У меня есть два сортируемых списка, связанных вместе.
У меня есть прослушиватель событий в первом списке, вызывающий функцию «A» в «sortupdate» для выполнения некоторых функций, когда я сортирую элементы в списке или получаю элементы из другого списка.
У меня также есть прослушиватель событий во втором списке, вызывающий функцию «B» в «sortreceive» для выполнения некоторых функций, когда он получил элемент из другого списка.
Моя проблема в том, что всякий раз, когда я перемещаю что-то из списка 1 в список 2, также вызывается функция «A», которая вызывает ошибки в моем коде.Я хотел бы добавить в начало функции «A» предложение «if», в котором говорится, что этот код следует запускать только в том случае, если целью является первый список, но я никак не могу понять, как ссылаться на цель.
Или, может быть, есть лучший способ проверить, был ли элемент перетянут из этого списка?
/ * добавление текущего кода * /
$("#divMainMenu").bind("sortupdate", function(event, ui)
{ dropRootCategory(event,ui);})//when the main menu receives a menu item
$("ul.divSubMenu ").bind("sortreceive", function(event, ui)
{ dropSubMenu(event, ui);})//when the main submenu receives a menu item
function dropRootCategory(event, ui)
{/*item dropped on root category*/
//do some different stuff
}
function dropSubCategory(event, ui)
{//item dropped on a sub submenu
//do some stuff
}
Я пыталсяпроверка цели:
if (event.target.id == 'divMainMenu') { //
, которая не работает, потому что идентификатор цели остается «divMainMenu» независимо от того, куда я перехожу.
Далее я попытался проверить отправителя:
if (ui.sender == 'null'){//
Однако эта информация заполнялась только после того, как она прошла этап сортировки и перешла на сортировку, поэтому снова запустил код для запуска.
/ ******* Обновленный ответом на идею Пера Кейта ниже, я ответил на это следующим кодом: При запуске меню я добавил переменную, содержащую длину оригинала.длина главного меню
var numMenuItems = $('#divMainMenu').children().length;
Тогда для моего утверждения if:
if ($('#divMainMenu').children().length >= numMenuItems){
//do some stuff
}
Еще раз спасибо Кит!Я сходил с ума от этого:)