Sunday, May 13, 2012

How to access the jQuery event object in a Seaside callback


Basically, I want to translate the following into Seaside Smalltalk:




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



Besides that I don't want to console.log the event, but access it in my ajax callback.



The most promising approach seemed to be something like




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



But I couldn't find any way to access the event that caused the callback. Intuitively, I would try




html jQuery this event



for the ??? part, but the Seaside jQuery wrapper doesn't know any message that comes close to event .



Any help is appreciated. There has to be away to access the event data...


Source: Tips4all

1 comment:

  1. To serialize the x mouse coordinate of the event use the following code:

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


    There are other properties in the event object that you might be interested in, just serialize them with the same AJAX request by adding multiple callback:value: constructs in a cascade.

    In the very latest JQuery code you can use html jQuery event to create the event object. This was missing up to now.

    ReplyDelete