[英]Accessing selected node of richfaces tree from Javascript
這應該是一個非常簡單的問題。 我有一個使用JSF渲染的richfaces樹。 當用戶點擊某個節點時,我希望運行一個javascript函數。 更不用說了。 沒有重定向,沒有重新提交,沒有重新呈現,沒有Ajax。 只是簡單的舊Javascript。
我已經看到了樹的onselected屬性,它確實觸發了一個Javascript方法。 但當然我想知道點擊了哪個節點。
這是我到目前為止所擁有的
<head>
<script type="text/javascript">
function documentClicked(nodeRef)
{
alert("Node is "+nodeRef);
}
</script>
</head>
<rich:tree switchType="client" value="#{ajaxDocumentTree.rootNode}"
var="document" onselected="documentClicked()" >
<rich:treeNode iconLeaf="../images/tree/doc.gif"
icon="../images/tree/doc.gif">
<h:outputText value="#{document.friendlyName}" />
</rich:treeNode>
但這不起作用,因為nodeRef未定義。 我期望回調的第一個參數是選定的節點,但事實並非如此。
所以問題是:
如何從richfaces樹中使用所選節點觸發Javascript函數?
答案是javascript代碼應該在節點級別而不是樹級別。
<head>
<script type="text/javascript">
function documentClicked(nodeRef)
{
alert("Node id is "+nodeRef);
}
</script>
</head>
<rich:tree switchType="client" value="#{ajaxDocumentTree.rootNode}"
var="document" >
<rich:treeNode onclick="documentClicked('#{document.id}')">
<h:outputText value="#{document.friendlyName}" />
</rich:treeNode>
我有一個JSF經驗不多,但是不應該
這樣 (在事件處理的范圍內)來指所選擇的節點,因為它通常在JavaScript中呢?
將您的功能更改為此並嘗試:
function documentClicked() { alert("Node is " + this); }
編輯:以上顯然不正確。 根據我在下面的評論,將您的JSF更改為
<rich:tree switchType="client" value="#{ajaxDocumentTree.rootNode}" var="document" onselected="documentClicked(this)" >
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.