2011-06-24 45 views
0

有人可以解釋爲什麼這不適合我嗎?我只是試圖在已經定義的頁面上運行一個javascript函數。這是一個基本的警報命令。電梯 - JE.Call()問題

//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片段將返回?

其次,你確定你的test函數在全球範圍內,這樣Call可以稱之爲?

相關的,你的瀏覽器的JavaScript控制檯說什麼?有沒有Javascript錯誤?這可能表明測試未在正確的範圍內定義。你看到任何網絡活動?如果沒有,那麼返回Call的服務器端部分不會被激活。

PS我是最後一個觸摸Call的ScalaDocs的人,如果您認爲他們不夠,可以再次更新它們。

+0

啊我發現問題,我正在運行命令,上面的JsCmds.SetHtml命令,但我沒有鏈接它。 Doh:P –

+0

還有一個問題....說我想將一些SetHtml命令鏈接在一起......並且我想要顯示一條消息,如「更新」,然後執行我的過程,然後將該消息更改爲「已完成」。我鏈,它似乎去了,但不會做級聯更新......這是在設計的電梯嗎?有沒有一種方法可以在執行時強制執行命令的「同步」操作?像這樣... JE.Call(「setMessage」,「updating ...」)&JsCmds.SetHtml(「myDiv」,serverCallFunction)&JE.Call(「setMessage」,「completed task!」) –

+0

代碼如果我沒有記錯,如果你使用jQuery,'setMessage(「updating ...」);嘗試{jQuery(「#myDiv」)。each(function(i){this.innerHTML = [serverCallFunction的結果];});} catch(e){}; setMessage(「完成的任務!」);' – pr1001