我想用我的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>
什麼我做錯了嗎?
你能確保你的js路徑啓動docroot文件夾後?例如,如果js位於path docroot/js/abc.js,並且您的js路徑應該是/js/abc.js –
以及獨立/部署,我爲我的模塊選擇WAR文件夾,然後路徑爲「WEB-INF /js/jquery.jstree.js「,所以我把它放到了我的liferay-portlet.xml中,但它不起作用..我會盡量多玩一點。 – Dropout