2014-10-22 2 views
1

이것은 jquery-mobile을 사용하려는 첫 번째 시도이며 Ajax에 의해 생성 된 li 태그의 id에 저장된 값을 전달하려고합니다. 아래에서 볼 수 있듯이 li 태그가 Panel 위젯에 대해 생성됩니다.jquery-mobile Panel passing 값을 Ajax에 전달

var mrn = '123'; 
$.ajax({ 
    type: "GET", 
    url: "CFCs/assessment_forms.cfc", 
    dataType: "json", 
    data: { 
     method: "NeroForm_rlu" 
    }, 
    success: function (data) { 

     var d = data.items; 
     var x = ''; 

     for (var i = 0; i < d.length; i++) { 
      x += '<li data-icon="action" id="formSwitcher_' + d[i].ASSESSMENT_DICTIONARYID + '"><a href="forms.cfm?MRN=' + mrn + '"class="ui-btn ui-btn-icon-right ui-icon-action">' + d[i].FORM_NAME + '</a></li>' 
     } 
     $('#leftNav').append(x).listview("refresh"); 
    } 
}); 

페이지를 채우는 데 필요한 정보를 반환하기 위해 첫 번째 아약스에서 생성 한 값을이 아약스로 전달하려고합니다. 여기

$('li[id^="formSwitcher"]').on("click", function (event) { 
    var FORMID = $(this); 
    $.ajax({ 
     type: "GET", 
     url: "CFCs/assessment_forms.cfc", 
     dataType: "json", 
     data: { 
      method: "FormInstruction_rlu", 
      AID: FORMID 
     }, 
     error: function (data) {}, 
     success: function (data) { 
      var d = data.items; 
      $('#headerName').html('ACCESSMENT - <b>' + d[0].FORM_NAME + '</b>'); 
      $('#instructions').html(d[0].INSTRUCTION_TOP); 
     } 
    }); 
}); 

내가 나의 선택은 내가이 문제를 해결하는 방법에 대한 약간의 혼란 스러워요 그래서 바인딩되지 않는다는 것을 믿는 navPanel

<div data-role="panel" data-display="overlay" id="nav-panel" data-theme='a'> 
    <ul data-role="listview" id="leftNav"> 
     <li data-icon="delete"> 
     <a href="" data-rel="close">Close menu</a> 
     </li> 
     <li data-icon="home"> 
     <a href="?MRN=123">Home</a> 
     </li> 
    </ul> 
</div> 

에 대한 HTML이다.

답변

2

"나는 내 선택이 너무 구속력 있다고 생각 내가이 문제를 해결하는 방법에 대한 약간의 혼란 스러워요."동적으로 생성 된 요소에 대한

, 당신은 에있다 위임 이벤트. $(static_parent).on(event, dynamic_child, function)

+1

오마르, 당신이 나를 때려 (+1), 여기에 당신이 게시 한 데모가 있습니다 : http://jsfiddle.net/ezanker/eay9dp4d/ – ezanker

+0

이것은 다소 부족한 것이 내가 필요로하는 클릭 이벤트에 있었다 " 클릭 ","리 "대신 셀렉터와 나는 분할 함수를 사용하여 ID를 얻을 수있었습니다 – Th0raxe

1

해당 줄을 다음으로 바꾸십시오.

var FORMID = $(this).attr("id"); 
+0

선택기가 실행되지 않아서 LI 태그에서 ID를 읽을 수있는 지점에 도달하지 못했습니다. – Th0raxe

1

여러분 모두에게 감사드립니다.

$("#leftNav").on("click",'li' , function (event) { 
    var id = $(this).attr('id').split('_')[1]; 
    console.log(id); 
})