【问题标题】:How to access the jQuery event object in a Seaside callback如何在 Seaside 回调中访问 jQuery 事件对象
【发布时间】:2011-02-28 09:44:46
【问题描述】:

基本上,我想将以下内容翻译成 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 的消息。

感谢任何帮助。必须离开才能访问事件数据...

【问题讨论】:

  • 哇。祝贺一年后对这个广受好评的问题投了反对票的人,甚至懒得发表评论。长大了!

标签: jquery ajax events smalltalk seaside


【解决方案1】:

要序列化事件的 x 鼠标坐标,请使用以下代码:

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

您可能对事件对象中的其他属性感兴趣,只需通过在级联中添加多个callback:value: 构造,使用相同的 AJAX 请求将它们序列化即可。

在最新的 JQuery 代码中,您可以使用 html jQuery event 创建事件对象。到目前为止还没有这个。

【讨论】:

  • 感谢您的回复。 JQEvent 似乎不见了。我的 jQuery Core 版本是 jf.87 - 这是版本问题还是我做错了什么?
  • 我在 lr.106。您可以尝试加载最新的代码,但不能保证它可以正常工作。看起来很快就会有一个新的 Seaside 版本。
  • 我试过了,但它不起作用(至少当我只更新 jQuery Core 及其直接依赖项时)。你能说这将是多快吗?不幸的是,我们的日程安排很紧......
  • 我建议您使用以下 Gofer 脚本将所有最新包加载到新映像中:github.com/renggli/builder/blob/master/scripts/seaside3.stgithub.com/renggli/builder/blob/master/scripts/…。或者您从网站seaside.st/download/pharo 获取每晚构建。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-10
  • 1970-01-01
  • 2012-01-02
  • 1970-01-01
  • 1970-01-01
  • 2017-04-06
  • 1970-01-01
相关资源
最近更新 更多