我不确定您在提供的示例中要做什么,但也许以下内容会有所帮助:
来自online documentation:
rich:jQuery 允许将样式和行为应用于 DOM 对象。
据我了解,查询属性包含可以为元素调用的 jQuery 函数。要在您的点击时发出警报,您可以执行以下操作:
<h:commandLink value="AW1" id="x1"/>
<rich:jQuery selector="#x1" query="click(function(){alert('test')});" />
更多来自文档:
丰富的:jQuery 可以在两种主要模式下使用:
- 作为一次性查询立即应用或在文档就绪事件上应用
- 作为可以从 JavaScript 代码调用的 JavaScript 函数
模式是通过“计时”属性选择的,该属性具有以下内容
选项:
- immediate — 立即应用查询;
- onload — 加载文档时应用查询;
- onJScall — 通过调用应用查询
使用“name”属性定义的 JavaScript 函数。
当“timing”属性值时,“name”属性的定义是强制性的
是“onJScall”。如果在“时间”值时定义了“名称”属性
等于 "immediate" 或 "onload",查询是根据
这个值,但您仍然有机会通过
函数名。
“选择器”属性定义一个对象或对象列表。这
查询是用“查询”属性定义的。
有很多不同的方式来使用这个组件。
第一种模式是作为一次性查询立即应用或在文档就绪事件上应用。有来自在线文档的示例。
第二种模式是您希望从事件中调用 JS 函数,示例取自文档:
<h:graphicImage width="50" value="/images/warning.png" onmouseover="enlargePic(this, {pwidth:'60px'})" onmouseout="releasePic(this)" />
<rich:jQuery name="enlargePic" timing="onJScall" query="animate({width:param.pwidth})" />
<rich:jQuery name="releasePic" timing="onJScall" query="animate({width:'50px'})"/>
如您所见,jQuery animate 函数是在查询属性中定义的,当鼠标悬停在图像上时,它将应用于图像组件。
如果您希望在有人单击链接时调用 JS 函数,那么您不必使用 rich:jquery 组件并在您的 javascript 代码中仍然使用 jQuery。 JQuery 带有 RichFaces。如果您使用的是 RF 3.3.3,则必须在无冲突模式下使用 jQuery:http://docs.jquery.com/Using_jQuery_with_Other_Libraries
最后看看这个组件的现场演示:
http://livedemo.exadel.com/richfaces-demo/richfaces/jQuery.jsf;jsessionid=BD9D90829B8C4A9E230203856497FC9C?c=jQuery&tab=usage
更新
根据您在其中一个答案中提供的示例,请在下面查看我是如何做到的:
<h:commandLink value="AW" id="x" onclick="testaw(this);return false;"/>
<rich:jQuery name="testaw" timing="onJScall" query="stop().fadeOut('slow')"/>
您会注意到我删除了选择器和事件属性,这是因为您尝试执行的示例将属于我原来提到的第二种模式(作为可以从 JavaScript 代码调用的 JavaScript 函数)回答。
我添加了在此模式下使用 jQuery 组件时必须使用的两个属性“名称”和“时间”。
我还在链接中添加了一个 onclick 事件(并确保返回 false,因为此组件将尝试提交表单,如果发生这种情况,您将看不到 jquery 效果)。
更新 2
如下要求是一个基于您的示例的工作示例,用作页面加载时应用的一次性查询:
<h:commandLink value="AW2" id="x2"/>
<rich:jQuery selector="#x2" timing="onload" query="stop().fadeOut('slow')" />
另一个例子是:
<h:commandLink value="AW3" id="x3"/>
<rich:jQuery selector="#x3" query="click(function(){jQuery(this).stop().fadeOut('slow')})" />
上面的问题是表单被提交了。我试过这个,以为它会起作用,但它没有:
<h:commandLink value="AW3" id="x3"/>
<rich:jQuery selector="#x3" query="click(function(e){jQuery(this).stop().fadeOut('slow');e.preventDefault()});" />