5

我正在使用 Seaside(Squeak 4.2 中的 2.8)并且通常更新如下:

html div 
    onClick: ((html jQuery: '#asdf') load html: [:h|h text: 'qwer'])
    ; with: 'asdf'.

但这一次,我必须定期更新一个 div

periodicalEvaluator在另一个项目中使用过 PT,但是在这个项目中我不能,我必须坚持使用 JQ。

我尝试delay:millis在我能想到的所有组合中使用 JQInstance:

onClick: (((html jQuery id: 'chattertext') delay: 1000; yourself) load html: [:h| self renderTextOn: h])
; onClick: (((html jQuery id: 'chattertext') delay: 1000) load html: [:h| self renderTextOn: h])
; onClick: (((html jQuery id: 'chattertext') delay: 1000; load) html: [:h| self renderTextOn: h])
and others

由于某种原因,更新是即时的,而不是我需要的 1000 毫秒之后。

4

2 回答 2

4

看一下 JQuery 功能测试套件附带的示例:

JQRepeatingFunctionalTest>>#renderContentOn: html
  html paragraph
    script: (html jQuery this load
      html: [ :r | self renderTimeOn: r ];
      interval: 1 seconds); 
  with: [ self renderTimeOn: html ]

示例在这里运行。

于 2013-03-24T19:14:22.687 回答
1

jQuery 的delay功能只适用于效果[1]。

要实现您想要的,只需使用 Javascript 的 setTimeout 或 setInterval 函数:

onClick: (((html jQuery id: 'chattertext') load html: [:h| self renderTextOn: h]) timeout: 1000)

[1] http://api.jquery.com/delay/

于 2013-03-24T18:22:00.780 回答