尝试打开多个jQuery UI对话框,并在单击时加载它们

时间:2011-08-16 18:36:58

标签: jquery jquery-ui jquery-ui-dialog

我正在尝试通过具有相同类的多个链接打开多个对话框,但仅在单击打开的对话框链接时加载内容,
所以我一直在玩Nemikor's solution动态加载内容, 和Nick Craver's多个对话框方法, 并想出了这段代码:

$(document).ready(function() {
    $('.addBtn, .editBtn').each(function() {
        var $link = $(this);
        var $nextDiv = $(this).next('.editDialog');
        $.data(this, 'divObject', $nextDiv);
        $.data(this, 'dialog',  
            $nextDiv.dialog({
                    autoOpen: false,
                    title: $link.attr('title'),
                    width: 700,
                    height: 650 
                }) 
        ); 
    }).click(function() {  
        $.data(this, 'divObject').load($(this).attr('href'));
        $.data(this, 'dialog').dialog('open');
          return false;  
      });
});

当我加载页面时,我点击的第一个链接(无论哪一个)完美地工作,
但是,如果我按另一个 - 浏览器导航到内容而不是在对话框中打开它,并发送错误消息:

Error: $.data(this, "divObject") is undefined

请帮助!

1 个答案:

答案 0 :(得分:1)

这是我写的一些小脚本(动态对话框)

$(".dialog").dialog({
    autoOpen: false,
    show: "blind",
    hide: "explode",
    draggable: false,
    resizable: false
});

$(".opener").click(function () {
    diagId = ($(this).attr("id"));
    $("." + diagId).dialog("open");
    return false;
});

<a class="opener" id="SomeDiag">

<div class="dialog SomeDiag" title="DiagTitle">
   <p>blah blah blah copy copy copy</p>
</div>

我看到了一种动态,因为我没有传递内容,而是动态地打开预定义内容