2012-06-25 86 views
2

我試圖在我的Liferay 6.1門戶中顯示內嵌對話框(即,aui-inline-dialog,而不是aui-dialog)。不過,我無法獲得https://developer.atlassian.com/display/AUI/Inline+Dialog上的示例。Liferay JSP頁面中的AUI內嵌對話框

我嘗試這樣做:

<a href="#" id="inlineDialog"> Inline Dialog </a> 
<script type="text/javascript"> 
AUI().ready('aui-inline-dialog', 'aui-overlay-manager', function(A) { 
    A.InlineDialog(A.one("#inlineDialog"), "myDialog", function(content, trigger, showPopup) {showPopup();}, {onHover: true}); 
}); 
</script> 

,但它只是說,InlineDialog不是一個函數。

我錯過了什麼? (或者是否有更好的方法來顯示不僅僅是文本內容的工具提示?)

回答

2

剛剛發現問題: auray-inline-dialog不包含在Liferay中。

我的解決辦法:

  • 下載最新Atlassian的扁平封裝(這樣頁面上的一個:https://developer.atlassian.com/display/AUI/AUI+4.2+Release+Notes
  • 添加aui.js和AUI-dependencies.js到DOCROOT/JS/
  • 添加<header-portlet-javascript>/js/aui-dependencies.js</header-portlet-javascript><header-portlet-javascript>/js/aui.js</header-portlet-javascript>到你的Liferay-portlet.xml文件
  • 添加aui.css到DOCROOT/CSS/
  • 添加<header-portlet-css>/css/aui.css</header-portlet-css>到您的Liferay的portlet的。 xml文件

結果:您現在應該可以像使用FlatPack示例一樣使用AUI,例如,

<a href="#" id="popupLink">Hover Link</a> 

    <script type="text/javascript"> 
    AJS.InlineDialog(AJS.$("#popupLink"), 1, 
      function(content, trigger, showPopup) { 
       content.css({"padding":"16px"}).html('<a href="http://example.com">Appended content.</a>'); 
       showPopup(); 
       return false; 
      }, { 
       onHover:true 
      } 
     ); 
    </script>