【问题标题】:jquery ui dialog: possible to create a list element on close?jquery ui 对话框:可以在关闭时创建列表元素吗?
【发布时间】:2011-03-31 00:33:40
【问题描述】:

当我关闭对话框时,我希望动态创建一个列表元素。单击列表元素时,将再次打开对话框。这可能吗?

$('#dialog').dialog({ 关闭:函数(){ var e = $(this).parent().find('.ui-dialog-title').text(); var id = $(this).attr("id"); $('李', { 班级号, 值:e, 点击:函数(){ $('#'+id).dialog('open'); } }).appendTo('#aULelement'); }, 打开:函数(){ var id = $(this).attr("id"); if ($('.'+id).length){ $('.'+id).remove(); } } });

截至目前,这段代码没有构建列表项,但没有返回错误。

【问题讨论】:

    标签: jquery jquery-ui


    【解决方案1】:

    你很亲密。您需要使用<li/>texthtml 而不是value

    $('#dialog').dialog({
        close: function() {
            var e = $(this).parent().find('.ui-dialog-title').text();
            var id = $(this).attr("id");
            $('<li/>', {
                class: id,
                text: e,
                click: function() {
                    $('#' + id).dialog('open');
                }
            }).appendTo('#aULelement');
        },
        open: function() {
            var id = $(this).attr("id");
            if ($('.' + id).length) {
                $('.' + id).remove();
            }
        }
    });
    

    例子:

    http://jsfiddle.net/jtbowden/BGLxW/

    【讨论】:

    • Jeff B,成功了——谢谢!我拥有 jQuery in Action 这本书,但我根本无法在其中找到您的信息。知道什么资源教会了你
    • (这算作选择器吗?)和文本属性?我看到 jsfiddle 是测试代码的绝佳方式 - 再次受到高度赞赏。
  • 只是自学。我经常玩 jsfiddle,这很有帮助。您可以在那里进行试验,直到它工作为止,这比更新网站要快得多,而且通常比在本地工作要快一些。
  • 回答你关于&lt;li/&gt;的问题,它不是一个选择器。当您提供选择器时,jQuery 将寻找与您的选择器匹配的现有元素(或多个元素)。在这种情况下,您提供的是 html,因此 jQuery 知道要创建一个新元素。同样,您可以执行$('#myDiv').append('&lt;div id="newDiv"&gt;Any html can go here&lt;/div&gt;'); 之类的操作。
  • P.S.,使用对象数据创建元素(即{class: id,...})相对较新(我相信是 1.4),所以如果在 2010 年之前印刷,您的书可能没有它。
  • 我看到
  • 不是标准的 HTML,所以我认为这只是告诉 jQuery 创建一个元素并带有一个结束标记的一些奇怪的方式。对象数据在书中(涵盖 1.4)但是,它只是掩盖了我发现的两次,并且没有显示“类”和“文本”的属性,所以我最初是在黑暗中刺伤,如在线文档我发现这是稀疏的。有趣的注意事项:您实际上必须在“类”周围加上一些引号,以便 IE8 不会出错,但是,大多数其他属性似乎不需要这个。
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签