2010-08-26 14 views
1

我有richfaces應用程序。在頁面上,有jQuery函數定義:豐富:jQuery沒有在JS調用工作

<rich:jQuery timing="onJScall" name="updateUrlHash" selector="#conversationId" 
    query="alert('in jquery call');" /> 

然後,我有一些A4J:commandLink,應該呼籲完成Ajax請求的功能。

<a4j:commandLink value="test" oncomplete="updateUrlHash(this)" /> 

不幸的是,它不起作用。我知道不完整的作品,因爲如果我放在那裏alert('test');,顯示警報。但是當我嘗試撥打updateUrlHash功能時,它不起作用。我檢查了頁面源代碼中的函數。什麼可能是錯誤的?

回答

1

我發現它。在由jQuery選擇器選擇的對象上調用查詢。所以在這樣的例子中,在JavaScript中是它

jQuery(selector).alert('in jquery call'); 

這當然是行不通的。所以,我需要調用所選元素上的任何東西,然後我可以做我想做的:

query="hide(); alert('this works');" 

在Javascript中則然後(選中的元素被隱藏無論如何):

jQuery(selector).hide(); alert('this works'); 
+0

有趣。但是,難道你不能把它定義爲普通的香草JS函數,而不是使用'rich:jQuery'? – BalusC 2010-08-27 11:51:51

+2

我可以,但我想使用普通的JSF ID(#conversationId),它在生成的頁面中就像'blabla:formbla:conversationId'。 爲我處理。無論如何,這是有趣的問題:) – amorfis 2010-08-27 12:05:53

+0

啊,它的工作方式。感謝分享。 – BalusC 2010-08-27 16:15:25