這應該是一個非常簡單的問題。我有一個使用JSF呈現的richfaces樹。當用戶點擊一個節點時,我想運行一個javascript函數。沒有什麼比這更少。沒有重定向,沒有重新提交,沒有退縮,沒有Ajax。只是普通的舊Javascript。從Javascript訪問richfaces樹的選定節點
我已經看到被選中的屬性的樹,它的確會觸發一個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是不確定的。我期望回調的第一個參數是選定的節點,但事實並非如此。
所以,問題是這樣的:
如何觸發一個JavaScript函數與來自RichFaces的樹中選擇的節點?
我以爲同樣的事情!我已經嘗試過了。 「這」指的是整個瀏覽器窗口,而不是選定的節點。 – kazanaki 2010-05-19 07:47:21
你有測試網頁的公開網址嗎?我對這些Java/JSF到JavaScript框架非常懷疑。可能是因爲我不太瞭解它們,但是最終會看到生成的JS代碼有多大幫助。然後我們可以看到實際上如何調用documentClicked。 – 2010-05-19 08:34:49
好吧,我很愚蠢,從你的代碼中明顯看出documentClicked是如何被調用的。保持你原來的功能,並像這樣選中它:documentClicked(this)。 – 2010-05-19 08:45:52