如何打开单个jquery对话框

时间:2012-06-01 08:32:50

标签: jquery dialog leaflet

我在页面上动态生成多个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;
    });

});

1 个答案:

答案 0 :(得分:0)

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

$('#' + *yourId*).dialog('open');

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

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

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