如何在jsf中使用pretty photo(jquery gallery插件)?

如何在jsf中使用pretty photo(jquery gallery插件)?,jquery,jsf,jakarta-ee,Jquery,Jsf,Jakarta Ee,我正在尝试与jsf集成,但不知道如何调用函数。加载文档时,我希望在用户点击图像时显示照片库。我编写了如下代码: <script src="/iHome-war/js/jquery.js" type="text/javascript" charset="utf-8"></script> <link rel="stylesheet" href="/iHome-war/styles/prettyPhoto.css" type="text/css" media="scree


我正在尝试与jsf集成,但不知道如何调用函数。加载文档时,我希望在用户点击图像时显示照片库。我编写了如下代码:

<script src="/iHome-war/js/jquery.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" href="/iHome-war/styles/prettyPhoto.css" type="text/css" media="screen" 
charset="utf-8" />
<script src="/iHome-war/js/jquery.prettyPhoto.js" type="text/javascript" charset="utf-8"></script>
...
<h:form id="soForm">
<div class="articleContent">
<div class="galleryPhoto">
<h:commandLink action="/userimages/22/0.jpg" rel="prettyPhoto">
<h:graphicImage url="/userimages/22/0.jpg" width="120" height="90" alt="photo"/>
</h:commandLink></div></div></h:form> 
...
<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$("#soForm\\:commandLink[rel^='prettyPhoto']").prettyPhoto();});
</script>

...
...
$(文档).ready(函数(){
$(“#soForm\\:commandLink[rel^='prettypto']”。prettypto();});

但是它不起作用。所以问题是如何调用这个函数使其工作?我知道JSF名称包含两个元素formid:componentid,但是如何使用这些信息呢?感谢您的回复。

问题在于,“commandLink”构造是服务器端的东西,当Javascript代码在客户端运行时,它将消失。因此,您需要更改选择器:

$("#soForm *[rel^='prettyPhoto']").prettyPhoto();

我不知道页面上生成了什么“commandLink”,但是如果您发现它是一个
标记,您可以用“a”替换该“*”。

jsf有一个
forceId
属性,您可以使用该属性强制您要在其上运行该函数的元素的id,在您这样做之后,您的选择器将变为

jQuery("#THE_ID").prettyPhoto()

它是一个
元素。因此,一定要使用
a
。提示:在编写JavaScript/jQuery时,不要查看JSF源代码,而是查看其生成的HTML输出(因为JS可以访问这些内容)。在浏览器中的页面上单击鼠标右键,然后选择“查看源”以查看该页面。