0

我在页面上动态生成了多个 jquery ui 对话框,如何定位和打开个人?

需要有两种打开对话框的方法,一个标记(使用传单地图)和一组与地图上的标记相对应的侧边栏项目。单击标记会打开正确的对话框,但单击单个侧边栏项目会打开所有对话框...

我有代码:

$(function() {

var projectDialog = $('<div id="' + L.Util.stamp(e.layer) +'" class="model-wrap">\
    ' + pDesc + '\
    </div>');


     projectDialog.dialog({
            modal: true,
            autoOpen: false,
            title: pName,
            show: 'fade',
            hide: 'fade',
            dialogClass: (e.layer)

        });


$(e.layer).click(function() {

    projectDialog.dialog('open');

});


        // this is the sidebar link items - each item is given an id & href matching the corresponding e.layer
    $('.item').click(function (e) {
        e.preventDefault();
        projectDialog.dialog('open');
        return false;
    });

});

4

1 回答 1

0

projectDialog.dialog('open');你为什么不通过 id 打开对话框,而不是调用?

$('#' + *yourId*).dialog('open');
或者
$('div[id=' + *yourId* + ']').dialog('open');

您应该能够在单击事件中的 (e) 中获取 Id,因为您说它被赋予了 id 和 href。

此外,如果您尝试将事件绑定到动态生成的元素,您可能应该使用 .live() 或 .on() 。

于 2012-07-27T15:22:34.940 回答