【问题标题】:List of multiple dialog box多个对话框列表
【发布时间】:2016-02-12 03:22:43
【问题描述】:

我需要编写一个 jQuery 函数来让不同的按钮打开不同的对话框,每个链接都作为一个对话框。

如何在html 中插入一个变量以将每个按钮链接到他的对话框而不为每个按钮编写函数?

我有单个对话框功能,我需要将其应用于多个解决方案

$(document).ready(function () {
    $('.prova').click(function () {
        $('.wrap-dialog-contact')
                .addClass('show-dialog')
                .removeClass('hide-dialog');
        $('.dialog-overlay')
                .toggleClass('dialog-overlay-on')
                .removeClass('overoverlay-disappear')
                .addClass('overlay-appear');
        $('.dialog-contact-content')
                .addClass('dialog-enter');
        $('.dialog-contact-content')
                .removeClass('dialog-exit');
        $('#over')
                .addClass('blur');
    });
});

$(document).ready(function () {
    $('.dialog-overlay, .input-contact-close').click(function () {
        $('.wrap-dialog-contact')
                .removeClass('show-dialog')
                .addClass('hide-dialog');
        $('.dialog-overlay')
                .toggleClass('dialog-overlay-on')
                .removeClass('overoverlay-appear')
                .addClass('overlay-disappear');
        $('.dialog-contact-content')
                .removeClass('dialog-enter')
                .addClass('dialog-exit');
        $('#over')
                .removeClass('blur');
    });
});

我认为最好的方法是添加一个data-XXX,但是如何在 jQuery 函数中管理它?

【问题讨论】:

  • 使用 然后在点击事件中使用 $(this).attr("dialog-id") api.jquery.com/attr
  • 抱歉,我不明白我如何调用不同的对话框

标签: javascript jquery html jquery-ui-dialog


【解决方案1】:

使用这个

<a class="prova" dialogId="dialog1">Dialog1</a>
<a class="prova" dialogId="dialog2">Dialog2</a>

然后将该 id 添加到您的对话框中(不知道 #over 是什么,但您可以使用相同的逻辑):

$('.prova').click(function(){

    var dialogId = $(this).attr("dialogId");
    $('#'+dialogId+' > .wrap-dialog-contact').addClass('show-dialog').removeClass('hide-dialog');
    $('#'+dialogId+' > .dialog-overlay').toggleClass('dialog-overlay-on').removeClass('overoverlay-disappear').addClass('overlay-appear');        $('#'+dialogId+' > .dialog-contact-content').addClass('dialog-enter');
    $('#'+dialogId+' > .dialog-contact-content').removeClass('dialog-exit');
    $('#over').addClass('blur');
  });

【讨论】:

  • 我想我明白你的意思
  • #over是我用来影响页面内容的id
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多