2011-06-24 9 views
0

これは私のために働いていない理由を誰かが説明できますか?私はすでに定義されているページでjavascript関数を実行しようとしています。これは基本的なアラートコマンドです。リフト - JE.Call()question

//On html page 

<script type="text/javascript"> 
    function test(){ 
     alert('hi'); 
    } 
</script> 

//on lifty page 
JE.Call("test") 

私は、質問のためにhtml/lift/scalaコードを大量に削除しました。何らかの理由で、これはhtmlページのjs関数を呼び出しません。つまり、ページのどちらかで、またはajaxButton関数が呼び出されたときです。私はちょうどhtmlページのjavascriptと対話しようとしています。私は重要な細部を欠いているはずですか?

ありがとうございます!

答えて

1

まず、Callはどのように返されますか?そのページにAJAXまたはCometスニペットがありますか?

第2に、あなたのtest関数がCallがそれを呼び出すことができるようにグローバルスコープにあることを確かめますか?

関連するブラウザのJavascriptコンソールには何が表示されますか? Javascriptのエラーはありますか?これは、テストが適切な範囲で定義されていないことを示している可能性があります。ネットワーク活動は見えますか? noの場合、Callを返すサーバー側の部分はアクティブ化されません。

PS私は最後にCallのScalaDocsに触れる人でした。十分ではないと思われる場合は、再びそれらを更新できます。

+0

ああ問題が見つかりました。私はJsCmds.SetHtmlコマンドの上でコマンドを実行していましたが、私はそれをチェーンしていませんでした。 Doh:P –

+0

もう1つの質問....私はいくつかのSetHtmlコマンドを連鎖したいと言っています...そして、 "Updating"のようなメッセージを表示したいのですが、私のプロセスを行い、そのメッセージを "Completed"私は連鎖しているようですが、カスケード更新はしません...リフトでこれが設計されていますか?実行中のコマンドを強制的に強制終了する方法はありますか?このように... JE.Call( "setMessage"、 "updating ...")&JsCmds.SetHtml( "myDiv"、serverCallFunction)&JE.Call( "setMessage"、 "完了したタスク!") –

+0

コード私が正しく覚えていれば、あなたがjQueryを使っているなら、 'setMessage(" updating ... "); try {jQuery( "#myDiv"); each(function(i){this.innerHTML = [result of serverCallFunction];});} catch(e){}; setMessage( "completed tasks!"); ' – pr1001