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를 제공하고 있다고 말했다 있기 때문에 당신은 클릭 이벤트에 (예)의 ID를 가져올 수 있어야
.

또한 이벤트를 동적으로 생성 된 요소에 바인딩하려는 경우 .live() 또는 .on()을 사용해야합니다.

관련 문제