jquery ui - 模式对话框(创建模式内容的更好方法?)

发布于 2024-10-06 06:06:24 字数 175 浏览 6 评论 0原文

有没有办法在 JavaScript 中定义模式内容,而不是总是必须在页面上有一个元素并从中创建对话框?

它有标题选项,因此我可以“动态”创建模态标题,但实际内容呢?就像说我需要它说,“你要删除图像#539”。而不是为每个可能的图像创建一个模式 - 或者甚至创建元素然后从中创建对话框。

一定有更好的方法。

Is there a way to define the modal content in the javascript, rather than always having to have an element on the page and create the dialog from that?

It has the title option, so I can 'dynamically' create a modal title, but what about the actual content? Like say I need it to say, "you are going to delete image #539". Rather than creating a modal for every possible image - or even from creating the element and then making the dialog from that.

There's got to be a better way.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

攒一口袋星星 2024-10-13 06:06:24

您可以尝试以下内容:

HTML

<button id='diag1'>First dialog</button>
<button id='diag2'>Second dialog</button>

Javascript

var diag = $('<div id="myDialog" title="Testing!"><span id="dialogMsg"></span></div>');

diag.dialog({
    autoOpen: false,
    modal: true
});

$('#diag1').click(function() {
    $('#dialogMsg').text("Message for dialog 1.");
    diag.dialog("open");
});

$('#diag2').click(function() {
    $('#dialogMsg').text("Message for dialog 2");
    diag.dialog("open");
});

演示此处< /a>.

You could try something like this:

HTML

<button id='diag1'>First dialog</button>
<button id='diag2'>Second dialog</button>

Javascript

var diag = $('<div id="myDialog" title="Testing!"><span id="dialogMsg"></span></div>');

diag.dialog({
    autoOpen: false,
    modal: true
});

$('#diag1').click(function() {
    $('#dialogMsg').text("Message for dialog 1.");
    diag.dialog("open");
});

$('#diag2').click(function() {
    $('#dialogMsg').text("Message for dialog 2");
    diag.dialog("open");
});

Demo here.

不即不离 2024-10-13 06:06:24

这是另一个更动态的解决方案:

function showError(errorTitle, errorText) {

    // create a temporary place to store our text
    var window = $('<div id="errorMessage" title="' + errorTitle + '"><span id="dialogMsg">' + errorText + '</span></div>');

    // show the actual error modal
    window.dialog({
        modal: true
    });
}

然后,当您需要调用错误模式时,只需执行以下操作:

showError("Error-Title", "Error message here");

您可以想象向函数添加更多参数来控制宽度、高度等。

享受吧!

Here's another solution, a bit more dynamic:

function showError(errorTitle, errorText) {

    // create a temporary place to store our text
    var window = $('<div id="errorMessage" title="' + errorTitle + '"><span id="dialogMsg">' + errorText + '</span></div>');

    // show the actual error modal
    window.dialog({
        modal: true
    });
}

Then when you need to call the error modal simply do:

showError("Error-Title", "Error message here");

You can imagine adding more parameters to the function to control the width, height, etc.

Enjoy!

携余温的黄昏 2024-10-13 06:06:24

谢谢斯科特。我为对话框添加了一个标题属性:

...

var diag = $('<div id="myDialog" title=""><div id="dialogMsg"></div></div>');

...

$('#diag1').click(function() {
    $('#dialogMsg').html('<div class="dialog-body">Message for dialog 1</div>');
    $("#myDialog").dialog({title: 'Dialog Title 1'});
    diag.dialog('open');
});

演示

Thank you Scott. I have added a title attribute for the dialog:

...

var diag = $('<div id="myDialog" title=""><div id="dialogMsg"></div></div>');

...

$('#diag1').click(function() {
    $('#dialogMsg').html('<div class="dialog-body">Message for dialog 1</div>');
    $("#myDialog").dialog({title: 'Dialog Title 1'});
    diag.dialog('open');
});

Demo

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文