【问题标题】:closethick button disappear liferay popup 6.2closethick 按钮消失 liferay popup 6.2
【发布时间】:2014-06-24 13:47:38
【问题描述】:

我正在将 AUI 弹出对话框窗口从 liferay 6.1 迁移到 liferay 6.2。我看到有一些具体的改变要做。我在显示按钮时遇到了一些问题,但现在已解决。但问题在于应该在右上角的关闭图标 (x)。我一添加保存按钮,它就突然消失了。

这是我的代码:

myPopup = AUI().use('aui-base','liferay-util-window','aui-io-deprecated', 'event', 'event-custom', function(A) {
    var buttons =[{
        cssClass: 'button_close',
        label: 'Save',
        render:true,
        id: 'myPopupButton',
        on: {
        click: function() {
            myPopupSubmit();
        }}
    }];

myPopup = Liferay.Util.Window.getWindow(
{
    dialog: {
        title : a + ' mytitle',
        centered : true,
        height : 600,
        width : 500,
        draggable : true,
        resizable : true,
        modal : true,
        toolbars: {
            footer:buttons
        },

    }}).plug(A.Plugin.IO, {
        uri : url
    }).render();
    myPopup.show(); 
});
}

如果您对此有任何想法,请告诉我..

myPopupSubmit我还写了代码来关闭弹出窗口:

top.document.getElementById('closethick').click();

由于没有closethick 按钮,它返回null

【问题讨论】:

    标签: popup liferay alloy-ui liferay-aui


    【解决方案1】:

    使用modal dialog example 作为比较,使用toolbars 属性时删除X 关闭按钮。

    查看the source codetoolbars 属性(撰写本文时第309 行)表明,如果您直接使用此属性,则需要在标题中包含您自己的Xclose。

    另一种方法是使用addToolbar 函数(如示例中所示)包含您的buttons,同时保留默认工具栏。

    modal.addToolbar([{
     cssClass: 'button_close',
     label: 'Save',
     render:true,
     id: 'myPopupButton',
     on: {
           click: function() {
             myPopupSubmit();
           }
         }
    }]);
    

    我还会考虑将对话框实例提供给您的myPopupSubmit 函数,这样您就可以直接访问执行dialog.hide() 或在myPopupSubmit 之后调用dialog.hide(),而不是使用X 关闭方法。

    如果坚持当前的方法,正在使用的 id 将不起作用,您需要使用 CSS 选择器,因为基于 YUI 的 id 会改变。

    【讨论】:

    • 谢谢!是的,现在 X 按钮出现了,但保存按钮没有显示。
    • 我的错误:我应该做 myPopup.addToolbar([{...}])..它现在可以工作了。谢谢!
    • 其实只是想问一下关闭窗口的方法是否正确:右上角的 X 图标有效,但我也想在单击“保存”按钮后启用关闭窗口。正如@Origineil 建议的那样,id 会改变,所以我需要使用 css 选择器。你能举一个例子吗。我尝试了其他方式,例如:调用 myPopup.hide();在 myPopupSubmit() 之后,但我收到一个类型错误,说 myPopup.hide 不是一个函数......可能是我做错了......
    • 除非需要Liferay.Util.Window.getWindow,否则我会使用链接示例中的aui-modal 方法呈现模式对话框。在the source of the calendar portlet 中可以看到您的方法的示例用法。如果你想在那之后继续你的方法模型,在第 73 行,他们使用.hide()。关于 CSS 选择器,this example 很不错。
    猜你喜欢
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2014-06-24
    • 2020-06-17
    • 2016-07-19
    • 2017-11-07
    相关资源
    最近更新 更多