我在页面上动态生成多个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;
});
});
答案 0 :(得分:0)
而不是调用projectDialog.dialog('open');
,为什么不通过id打开对话框?
$('#' + *yourId*).dialog('open');
或
$('div[id=' + *yourId* + ']').dialog('open');
你应该能够在点击事件中获得(e)中的Id,因为你说它被赋予了id和href。
此外,如果您尝试将事件绑定到动态生成的元素,则应该使用.live()或.on()。