Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
克隆对话框顶部的jqueryui对话框按钮_Jquery_Jquery Ui - Fatal编程技术网

克隆对话框顶部的jqueryui对话框按钮

克隆对话框顶部的jqueryui对话框按钮,jquery,jquery-ui,Jquery,Jquery Ui,我有一个高大的对话框,带有保存和取消按钮,可以对对话框中的数据执行一些操作,也可以关闭对话框 是否可以复制这些按钮,使其显示在对话框的顶部和底部 我已经能够用零星的结果手动完成这项工作。我可以克隆在对话框初始化中创建的确切按钮吗?我知道按钮上没有身份证但是 谢谢 是的,你可以这样做。jQuery脚本中使用的确切选择器将取决于用于显示按钮的HTML元素,但克隆按钮及其事件处理程序将类似于: $('.dialogClass button').clone(true); 要将它们添加到位于对话框顶部的

我有一个高大的对话框,带有保存和取消按钮,可以对对话框中的数据执行一些操作,也可以关闭对话框

是否可以复制这些按钮,使其显示在对话框的顶部和底部

我已经能够用零星的结果手动完成这项工作。我可以克隆在对话框初始化中创建的确切按钮吗?我知道按钮上没有身份证但是


谢谢

是的,你可以这样做。jQuery脚本中使用的确切选择器将取决于用于显示按钮的HTML元素,但克隆按钮及其事件处理程序将类似于:

$('.dialogClass button').clone(true);
要将它们添加到位于对话框顶部的某个容器中,请执行以下操作:

$('.dialogClass button').clone(true).appendTo('.topContainerClass');

查看文档。

对话框小部件不提供这种开箱即用的行为。您可以自己攻击该行为,但当您升级到较新的jquery ui版本时,它可能会中断。以下是我将如何完成它:

    $('#my-dialog').dialog({
        buttons: {
            'hello world': function() { alert('hello world'); },
            'good bye': function() { alert('goodbye'); }
        },
        open: function(event, ui) {
            // for whatever reason, the dialog isn't passed into us as a paramter, discover it.
            var dialog = $(this).closest('.ui-dialog');

            // create a copy of all the buttons and mark it as a clone (for later)
            var originalButtons = $('.ui-dialog-buttonpane', dialog)
            var clonedButtons = originalButtons.clone().addClass('clone');
            $('.ui-dialog-titlebar', dialog).after(clonedButtons);

            // cloning doesn't copy over event handlers, so we need to wire up
            // the click events manually.     
            $('button', clonedButtons).click(function() {
                var button = $(this);                    
                var buttonIndex = $('button', clonedButtons).index(button);
                $('button:eq(' + buttonIndex + ')', originalButtons).click();
            });
        }
    });
就这么简单

将以下内容添加到jQueryUICSS中第445行周围的css中

.ui-dialog .ui-dialog-buttonpane
{
position: absolute; top: 35px; width: 98%;
}

谢谢你,马夫。我确实有多个对话框,所以所有的选择器我都尝试创建这些按钮的几个克隆。对不起,我应该提到我在这个应用程序中有多个对话框。