在父页面中使用Layui的layer.open方法打开子页面时,可以通过btn参数指定子页面中layer的按钮。如果子页面中使用了layer.msglayer.alert等方法,则需要在子页面中暴露一个方法供父页面调用。

以下是父页面调用子页面layer按钮的示例代码:

父页面(假设有一个按钮用于打开子页面):

// 打开子页面,并监听子页面的layer按钮
$('#open-child-page').click(function(){
    layer.open({
        type: 2,
        content: 'child_page.html',
        btn: ['确认', '取消'],
        yes: function(index, layero){
            // 子页面中的确认按钮被点击时,这里的代码会被执行
            // 可以通过layer.iframeIndex获取子页面的index
            var iframeWindow = layero.find('iframe')[0].contentWindow;
            iframeWindow.confirmInChildPage();
        },
        btn2: function(index, layero){
            // 子页面中的取消按钮被点击时,这里的代码会被执行
        },
        cancel: function(){
            // 右上角关闭按钮或者返回按钮被点击时,这里的代码会被执行
        }
    });
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

子页面:

// 子页面中的方法,供父页面调用
function confirmInChildPage() {
    // 调用layer的确认按钮
    layer.confirm('确认操作吗?', {
        btn: ['确认', '取消'] // 按钮
    }, function(index){
        // 这里处理确认的逻辑
        //访问成功之后可以刷新页面
        // 刷新父页面
		parent.location.reload();
         layer.close(index); // 关闭确认框
        // 其他操作...
    }, function(index){
        // 这里处理取消的逻辑
        layer.close(index); // 关闭取消框
        // 其他操作...
    });
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

当用户点击父页面中的按钮时,会打开子页面,并且父页面会监听子页面中layer的按钮事件。当用户在子页面中点击layer的确认或取消按钮时,会调用相应的函数执行操作。