2010-08-26 42 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