【问题标题】:jquery Dialog box opens with old and new contentjquery 对话框打开新旧内容
【发布时间】:2016-11-21 22:14:23
【问题描述】:

点击打开对话框时,显示新旧内容。如果我添加$(this).dialog("destroy");,那么我根本无法打开对话框。请告诉我如何不显示旧内容。

<script>
//display dialog box
$("#dialog-message").dialog({
    autoOpen: false,
    modal: false,
    draggable: true,
    resizable: true,
    show: 'blind',
    hide: 'blind',
    width: 900,
    dialogClass: 'ui-dialog-osx',
    buttons: {
        "I've read and understand this": function() {
            $(this).dialog("close");
        }
    }
});

//click to open dialog box
$("#test").click(function() {
    $( "#dialog-message" ).dialog( "open" );
}
</script>

<p id="test">test</p>
<div id="dialog-message" title="Important information">
<form>  </form>
</div>

【问题讨论】:

    标签: jquery dialog jquery-ui-dialog


    【解决方案1】:

    只需添加一个内容持有者,然后在捕获的点击事件上更改该内容,如下所示:

    //display dialog box
    $("#dialog-message").dialog({
        autoOpen: false,
        modal: false,
        draggable: true,
        resizable: true,
        show: 'blind',
        hide: 'blind',
        width: 400,
        dialogClass: 'ui-dialog-osx',
        buttons: {
            "I've read and understand this": function() {
                $(this).dialog("close");
            }
        }
    });
    
    //click to open dialog box
    $("#old-content").click(function() {
        $('#dialog-message .content').text('This is the old content');
        $('#dialog-message').dialog('open');
    });
    
    $("#new-content").click(function() {
        $('#dialog-message .content').text("Some new content");
        $('#dialog-message').dialog('open');
    });
    <link rel="stylesheet" type="text/css" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
    
    <button id="old-content">Old content</button>
    <button id="new-content">New content</button>
    <div id="dialog-message" title="Important information">
      <div class="content"></div>
    </div>

    【讨论】:

    【解决方案2】:

    发生这种情况是因为您在代码中错过了右括号 );。正确的 sn-p 是:

    //click to open dialog box
    $("#test").click(function() {
        $( "#dialog-message" ).dialog( "open" );
    });
    

    我制作了一个 JSFiddle 来演示它的工作原理。

    JSFiddle

    【讨论】:

    • 感谢 Hexodus。这也有助于解决我的问题。
    • @tenzin 我很高兴能提供帮助。请不要忘记投票;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多