Почему объект пользовательского интерфейса пуст, когда я вручную запускаю сортируемое событие? - PullRequest
2 голосов
/ 28 марта 2012

Я пишу страницу, на которой я хочу инициировать событие для сортируемой вручную (т. Е. С помощью метода .trigger ()), чтобы обновить имена и идентификаторы входов, которые мне нужно связать с формой, когда пользовательвносит изменения, которые автоматически не запускают соответствующие сортируемые события.У меня есть две вещи, которые меня смущают, и я хотел бы получить лучшее понимание, если кто-то знает и готов не торопиться.

Первый момент путаницы: я столкнулся с проблемой, когда "руководство".Метод trigger () ничего не делал, если я определил событие в методе .sortable () (вместо добавления дополнительного вызова к .bind ()).Я нашел множество постов, объясняющих обходной путь, но мне не ясно, является ли это функцией или ошибкой.

Второй момент путаницы: когда я запускаю событие вручную, объект "ui" становится пустым.Он определяется, когда событие срабатывает нормально.В моем приложении я смог обойти это, используя селекторы, так как мне действительно был нужен ui.item.Но я был бы признателен, если бы кто-то еще сталкивался с этим, если я что-то делаю неправильно и т. Д.

Я установил jsFiddle, демонстрирующий обе точки путаницы: http://jsfiddle.net/nanzalone/TDWXs/

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

Второе иллюстрируется событием «удалить».Теперь происходит событие, так как я использовал .bind (), но предупреждение показывает, что использование кнопки «Удалить» для запуска события приводит к нулевому объекту пользовательского интерфейса, а перетаскивание элемента в корзину для запуска удаления приводит кnull ui object.

Заранее благодарен за любые указатели и извинения за любые фальшивки, которые я мог невольно совершить (я все еще довольно новичок в jQuery).

1 Ответ

1 голос
/ 28 марта 2012

Я думаю, что ui - это объект, который вы используете для определения вещей, не связанных с пользовательским интерфейсом (например, предмет, который отбрасывается, например).
Если вы инициируете событие программным способом, взаимодействие с пользователем не происходит, и поэтому нетUI объект.Это имеет смысл, и это также способ определить, запускается ли событие программно (то, что для обычных событий вы делаете этим способом)
В вашем примере объект пользовательского интерфейса содержит свойства, такие как исходная позицияполученный объект, фактическая позиция и т. д. и т. д.

...