2

我试图在我的 Liferay 6.1 门户中显示一个内联对话框(即 aui-inline-dialog,而不是 aui-dialog)。但是我无法让https://developer.atlassian.com/display/AUI/Inline+Dialog上的示例正常工作。

我试过这个:

<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 不是一个函数。

我错过了什么?(或者有没有更好的方法来显示不仅仅是文本内容的工具提示?)

4

1 回答 1

2

刚刚发现问题:Liferay 中不包含 aui-inline-dialog。

我的解决方案:

  • 下载最新的 Atlassian FlatPack(如本页所示: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>
于 2012-06-25T12:17:26.940 回答