2013-12-09 32 views
1

我想用我的jsTree Liferay的portlet的內部,但每次的腳本執行後我得到一個錯誤:插入JavaScript的資源到Liferay的Portlet的

TypeError: treeContainer.jstree is not a function @ localhost:8080/web/guest/home:14

據我所知,它不具備JS文件可供使用,所以我已經嘗試了這兩種方法,但其他方法都無效。

第一:加入

<script type="text/javascript" src="jquery.jstree.js"></script> 

到JSP直接包含它。儘管我可以看到它在我的IDE中「鏈接」,但在構建和部署它不可用(duh)之後。

二:編輯它在liferay-portlet.xml這樣的:

<portlet> 
    <portlet-name>myPortlet</portlet-name> 
    <instanceable>false</instanceable> 
    <!-- other mappings here --> 
    <header-portlet-javascript>my/resource/folder/myPortlet/jquery.jstree.js 
    </header-portlet-javascript> 
</portlet> 

但是即使我在編輯這樣我在瀏覽器控制檯得到一個404。在JSP中使用

功能:

<script type="text/javascript"> 
$(".tree-search").click(function(){ 

    treeContainer = $(this).siblings('.tree-container'); 

    // correct data is taken from ${jsonFake} 
    treeContainer.jstree({ 
     "plugins":["themes","html_data","ui"], "json_data": { data: ${jsonFake}} 
    }); 

    treeContainer.show(); 
    treeContainer.animate({ 
     opacity: "1" 
    }, 750); 

}); 
</script> 

什麼我做錯了嗎?

+0

你能確保你的js路徑啓動docroot文件夾後?例如,如果js位於path docroot/js/abc.js,並且您的js路徑應該是/js/abc.js –

+0

以及獨立/部署,我爲我的模塊選擇WAR文件夾,然後路徑爲「WEB-INF /js/jquery.jstree.js「,所以我把它放到了我的liferay-portlet.xml中,但它不起作用..我會盡量多玩一點。 – Dropout

回答

1

這似乎是路徑問題:

創建一個文件夾中的文檔根名爲JS,並把這個文件存在。 添加腳本src如:

<script type='text/javascript' src='/js/jquery.jstree.js'></script> 
1

加入portal_normal.vm文件中的js文件在你的當前主題。像

<script type="text/javascript" src="jquery.jstree.js"></script>