2012-06-01 3 views
0

У меня есть несколько диалогов jquery ui, которые динамически генерируются на странице, Как настроить и открыть людей?Как открыть отдельные диалоги jquery

Должно быть 2 способа открыть диалог, маркер (игра с картами буклетов) и набор элементов боковой панели, соответствующих маркерам на карте. При нажатии на маркер открывается правильный диалог, но нажав на отдельные элементы боковой панели открывает все диалоги ...

У меня есть код:

$(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

Вместо того, чтобы звонить projectDialog.dialog('open');, почему бы вам не открыть диалог по id?

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

Вы должны быть в состоянии получить Id в вашем (е) в случае щелчка, так как вы сказали, что он получает идентификатор и HREF.

Кроме того, вероятно, вы должны использовать .live() или .on(), если вы пытаетесь связать событие с динамически сгенерированным элементом.

Смежные вопросы