Как получить доступ к объекту события jQuery в обратном вызове Seaside

По сути, я хочу перевести на Seaside Smalltalk следующее:

$(".myDiv").bind('click', function(e) {
    console.log(e);
}); 

Кроме того, я не хочу console.log события, но получить доступ к нему в моем обратном вызове ajax.

Наиболее многообещающим подходом казалось что-то вроде

html div
    onClick: (html jQuery ajax callback: [:v | self halt] value: (???);
    with: 'Foo'.

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

html jQuery this event

для части ???, но оболочка Seaside jQuery не знает ни одного сообщения, близкого к event.

Любая помощь приветствуется. Там должно быть далеко, чтобы получить доступ к данным о событии...


person Leo    schedule 06.06.2010    source источник
comment
Ух ты. Поздравляем того, кто проголосовал за этот хорошо принятый вопрос через год, даже не удосужившись прокомментировать. Расти!   -  person Leo    schedule 24.03.2012


Ответы (1)


Чтобы сериализовать координату x мыши события, используйте следующий код:

html div
    onClick: (html jQuery ajax
        callback: [ :x | x inspect ]
        value: JQEvent new pageX);
    with: 'Click'.

В объекте события есть и другие свойства, которые могут вас заинтересовать, просто сериализуйте их с помощью того же запроса AJAX, добавив несколько конструкций callback:value: в каскаде.

В самом последнем коде JQuery вы можете использовать html jQuery event для создания объекта события. Это отсутствовало до сих пор.

person Lukas Renggli    schedule 06.06.2010
comment
Спасибо за ответ. JQEvent, кажется, отсутствует. Моя версия jQuery Core - jf.87 - это проблема версии или что я могу делать неправильно? - person Leo; 06.06.2010
comment
Я в лр.106. Вы можете попробовать загрузить последний код, но нет гарантии, что он сработает. Похоже, скоро ожидается новый релиз Seaside. - person Lukas Renggli; 07.06.2010
comment
Я пытался, но это не работает (по крайней мере, когда я обновляю только ядро ​​jQuery и его прямые зависимости). Вы можете что-нибудь сказать, как скоро это будет? У нас плотный график, к сожалению... - person Leo; 07.06.2010
comment
Я предлагаю вам загрузить все последние пакеты в новый образ с помощью следующих скриптов Gofer: github.com/renggli/builder/blob/master/scripts/seaside3.st и github.com/renggli/builder/blob/master/scripts/. Или вы можете загрузить ночную сборку с веб-сайта seaside.st/download/pharo. - person Lukas Renggli; 07.06.2010