5

Seaside(Squeak 4.2では2.8)を使用しており、通常は次のように更新しています。

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

しかし今回は、divを定期的に更新する必要があります。

私は別のプロジェクトでPTを使用periodicalEvaluatorしましたが、このプロジェクトでは使用できません。JQに固執する必要があります。

私は考えられるすべての組み合わせでJQInstanceを使用しようとしましたdelay:millis

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 に答える