2010-06-06 17 views
8

Zasadniczo, chcę przetłumaczyć następujące w Seaside Smalltalk:Jak uzyskać dostęp do obiektu zdarzenia jQuery w zwrotnego Seaside

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

Poza tym nie chcę, aby console.log zdarzenie, ale dostęp do niego w moim wywołanie ajaxowe.

Najbardziej obiecujące podejście wydawało się, że coś

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

Ale nie mogłem znaleźć jakiś sposób, aby uzyskać dostęp do zdarzenia, które spowodowało wywołanie zwrotne. Intuicyjnie, chciałbym spróbować

html jQuery this event 

dla ??? części, ale owijka Seaside jQuery nie zna żadnych wiadomości zbliżony do event.

Każda pomoc jest doceniana. Nie musi być z dala, aby uzyskać dostęp do danych o zdarzeniach ...

+0

Wow. Gratulacje dla tego, który po roku zlekceważył to dobrze odebrane pytanie, nie zadając sobie nawet trudu. Dorastać! – Leo

Odpowiedz

8

do serializacji współrzędną x myszy imprezy użyć następującego kodu:

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

Istnieją inne właściwości obiektu zdarzenia, który może być zainteresowani, po prostu serializować je za pomocą tego samego żądania AJAX, dodając wiele konstrukcji callback:value: w kaskadzie.

W najnowszym kodzie JQuery można użyć obiektu html jQuery event do utworzenia obiektu zdarzenia. Tego już nie było.

+0

Dziękuję za odpowiedź. Wydaje się, że brakuje JQEvent. Moja wersja jQuery Core to jf.87 - czy jest to problem z wersją, czy też coś, co mogę zrobić źle? – Leo

+0

Jestem w lr.106. Możesz spróbować załadować najnowszy kod, ale nie masz gwarancji, że to działa. Wygląda na to, że wkrótce pojawi się nowa wersja Seaside. –

+0

Próbowałem, ale to nie działa (przynajmniej nie wtedy, gdy tylko aktualizuję jQuery Core i jego bezpośrednie zależności). Czy możesz powiedzieć, jak szybko to nastąpi? Mamy napięty harmonogram, niestety ... – Leo