Agility.js documentation, кажется, довольно ясно говорят, что объекты находчивость может принимать любые действительные JQuery тип события:Agility.js + jQueryUI, передать параметры обработчиков событий в контроллере
Обычные DOM события, такие как щелчок, DblClick, MouseEnter , и т. д. поддерживаются через API событий jQuery. Для получения списка поддерживаемых событий обратитесь к API jQuery.
Но в документах и во всех других примерах, которые я видел, все функции контроллера, связанные с событиями, не принимают никаких параметров. Например, следующий фрагмент взят прямо из the online docs:
var button = $$({msg:'Click me'}, '<button data-bind="msg"/>', {
'click &': function() {
this.model.set({msg:"I've been clicked!"});
}
});
$$.document.append(button);
Здесь лямбда, присоединенную к click
случае, очевидно, без параметров. Это работает нормально для обычных событий jQuery, но для использования событий jQueryUI каждая функция события имеет связанные данные. Например, если я хочу использовать Draggable и Droppable виджеты, функция drop()
вызывается в Droppable, чтобы указать, что на нее был удален Draggable, и мне нужны параметры drop(event, ui)
, чтобы выяснить, какой Draggable был.
Есть ли способ объявить обработчики событий контроллера, чтобы я мог получить доступ к этим параметрам? В качестве альтернативы, есть ли другой способ сделать то, что я пытаюсь сделать? Не получение какой-либо информации о событии на контроллере, отличном от «уволенного», кажется настоящим недостатком. Я даже не уверен, что можно расширить Agility, чтобы он мог обрабатывать события, отличные от стандартных DOM, хотя я не вижу причин, почему это не должно быть, из моего чтения кода.
Agility предоставляет функцию trigger()
для кода клиента для запуска событий, что позволяет использовать параметры, отличные от типа события. Я подумал о том, чтобы как-то подключиться к событию jQueryUI, но я не понимаю, как это сделать. Более того, почему вы можете передавать параметры до trigger()
, если контроллеры не могут их увидеть?
Спасибо, это работает отлично! Оказывается, параметры 'event' и' ui' передаются прямо в обработчик событий контроллера Agility, поэтому подключение jQueryUI виджетами не отличается от простых jQuery. – dodgethesteamroller