2009-08-11 2 views
0

이 코드를 한번 보아주세요 -동적 HTML 결과에서 javascript 함수를 실행하는 방법은 무엇입니까? Jquery

myLink를 클릭하면 아래와 같이 정의 된 html을 보여주는 모달 대화 상자 창이 나타납니다. 이 html에는 버튼 (id = test_button)이 포함되어 있으며이 버튼을 클릭하면 Ajax 요청을 수행하려고합니다. 하지만 작동하지 않습니다. 그래서 그것을 테스트하기 위해 나는 단지 경고하고 있지만 잘 작동하지는 않습니다.

또한 test_button 클릭 기능 내에서 기존 DOM 요소 값을 업데이트 할 수 있습니다 (양식을 채우는 것).

도움 주셔서 감사합니다.

$('#myLink').click(function(event) { 
    event.preventDefault(); 
    $('<div id="iContainer">Test: <input type="text" value="" id="test_text" /> 
     <input type="button" id="test_button" value="click" /></div>').appendTo('body');   
    $("#iContainer").dialog({     
     width: 600, 
     modal: true, 
     close: function(event, ui) { 
      $("#iContainer").remove(); 
      } 
     }); 
    }); 
    $('#test_button').click(function() { 
     alert('I am in Alert'); 
     //alert($('#test_text').val()); 
    }); 

답변

2

Events/live로 시도해보십시오

$('#test_button').live("click", function(){ 
    alert('test'); 
}); 
+0

화려한 ... 작동합니다. 다시 테스트 해 보겠습니다. 덕분에 – TigerTiger

1

문제는 당신이 요소가 존재하기 전에 클릭 핸들러를 연결을 시도하고 있다는 점이다. CMS에서 언급 한 바와 같이

, 당신은 (.live 사용할 수 있습니다) 또는 당신은 당신의 $ ('#의 내 링크')에서 클릭 처리기를 추가 할 수 있습니다() 함수를 클릭

을과 같이 :.

$('#myLink').click(function(event) { 
     event.preventDefault(); 
     $('<div id="iContainer">Test: <input type="text" value="" id="test_text" /> 
       <input type="button" id="test_button" value="click" /></div>').appendTo('body');     
     $("#iContainer").dialog({          
       width: 600, 
       modal: true, 
       close: function(event, ui) { 
         $("#iContainer").remove(); 
         } 
       }); 

     $('#test_button').click(function() { 
       alert('I am in Alert'); 
       //alert($('#test_text').val()); 
     }); 
}); 
+0

$ ('# myLink')에 어떻게 추가 할 수 있습니까? click() ?? 감사. – TigerTiger

+0

대답의 코드를 보면, 간단히 닫는 중괄호와 괄호를 끌어 $ ('# test_button'). (..) 코드를 묶었습니다. 그냥 메모를 좀 더 모듈 식으로 분리하는 방법에 대해 생각 하겠지만,이 또는 CMS의 솔루션을 사용하면 작업을 시작할 수 있습니다. – Marc

+0

예, 확인했습니다. – TigerTiger

관련 문제