javascript - 在对话框上使用 .replaceWith()。怎么了?

标签 javascript jquery

我想切换 JQuery Dialog使用按钮。

要替换对话框中的文本,我使用 .replaceWith()

问题是,即使我设置了,文本也不会被替换,并且对话框会显示

<div id="dialog-confirm" title="Can you confirm?" style="display: none;"> 

这是代码

(function() {
    $( "#dialog:ui-dialog" ).dialog( "destroy" );

    $( "#dialog-confirm" ).dialog({
        resizable: false,
        height:140,
        modal: true,
        buttons: {
            "Okay": function() {
                $( this ).dialog( "close" );
            },
            Cancel: function() {
                $( this ).dialog( "close" );
            }
        }
    });
});

function showhide(iname) {
    var item = document.getElementById(iname).style;
    if (item.display == 'none') {
    item.display = '';
    } else {
    item.display = 'none';
    }
}

$('div.dialog-text').replaceWith( "<b>New text goes here</b>" );

并且可以在以下位置进行现场试用

http://jsfiddle.net/littlesandra88/XxVtU/

另外,如果有更好的方法,请告诉我=)

最佳答案

文本替换似乎在 Chrome 11、Firefox 4 和 IE 9 中有效。出现该对话框是因为您正在文档就绪事件处理程序中初始化对话框插件,并且 jQuery UI 设置了新样式(包括 display) 到对话框。如果您希望隐藏它,请稍后隐藏它或仅在需要时初始化它。

由于它是一个模式对话框,由于覆盖,单击链接来隐藏它永远不会起作用,因此您可能只想在需要显示对话框时才初始化它。为此,我将初始化代码从就绪处理程序移至 showhide 函数:

function showhide(iname) {
    $("#" + iname).dialog({
        resizable: false,
        height: 140,
        modal: true,
        buttons: {
            "Okay": function() {
                $(this).dialog("close");
            },
            Cancel: function() {
                $(this).dialog("close");
            }
        }
    });
}

http://jsfiddle.net/XxVtU/8/


正如 T.J. Crowder在评论中提到,还有autoOpen: false,可以在初始化时应用。我将你的 fiddle 修改为 demonstrate this .

关于javascript - 在对话框上使用 .replaceWith()。怎么了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5991524/

相关文章:

javascript - 删除添加的行集

javascript - 类型错误 : Cannot read property 'TigerNo' of undefined tempObj ['TigerNo' ] = this. getDefault(sportsRecord).TigerNo

javascript - 使用复选框增加 Bootstrap 进度条

javascript - video.js - 单击链接时更新视频源

javascript - 为什么 JavaScript 中的这种分割不起作用?

JavaScript - 如何从对象中排除元素?

jquery - Ajax TypeError : $. POST 不是函数

javascript - 使用 .each 迭代具有相同类的 html 元素

javascript - React Router Redux 从 v3 升级到 v4

javascript - Jquery LayerSlider 动态更改选项