2013-02-08 3 views
0

자바 스크립트 함수에 onchange 호출로 숨겨진 선택 요소가 있습니다. 사용자가 내 페이지에서 버튼을 클릭내 숨겨진 선택 양식을 표시하면 자바 스크립트 함수를 호출하지 않습니다.

나는 아래의 코드를 실행하고 내 선택 양식이 표시됩니다 :이 그러나 표시 한 후

$("#moreDetails2").show(); 
$('#moreDetails2').trigger("create"); 

, 그것의 자바 스크립트 함수를 실행하지 않습니다. 나는 그것이 숨겨진 것이 아니라 그것을 테스트하고 작동합니다.

<div id = \"moreDetails2\"> 
        <select onchange=\"moreDetails2($userID,'$id')\"> 

         <option value=\"0\">More Options</option> 
         <option value=\"1\"> View Taste Profile</option> 
         <option value=\"2\"> Add Taste Tags</option> 

        </select> 
       </div> 

크롬의 검사 요소를 살펴보면 오류가 없습니다.

답변

1

jQuery를 모바일 = "... 또는 onclick을 ="... 이벤트 바인딩, 수동과 같이하여 수행해야합니다 onchange를 잘 재생되지 않습니다 :

$(document).on('pagebeforeshow', '#index', function(){  
    $(document).on('click', '#test-button', function(){  
     $("#moreDetails2").show(); 
     $("#moreDetails2 select").css('display','block').selectmenu('refresh'); 
    });  

    $("#moreDetails2 select").on("change", function(event, ui) { 
     moreDetails2('aaaa'); 
    });  
}); 

function moreDetails2(text) { 
    alert(text); 
} 

그리고 여기 작업의 코드에서 생성 된 jsFiddle 예제 : http://jsfiddle.net/Gajotres/DpdXY/

0

전역 함수 이름 및 요소 식별자와 같은 이름을 사용하면 Chrome, Safari 및 IE (Firefox 아님)에서 문제가 발생할 수 있습니다.

이벤트 핸들러 함수 이름을 "moreDetailsTwo"또는 다른 것으로 변경하십시오.

"id"값을 가진 각 요소에 대해 글로벌 기호 (즉, window 속성)를 만듭니다. 나는 그것이 "moreDetails2"함수의 바인딩을 망치고 있다고 의심합니다.

관련 문제