2011-08-17 9 views
0

버튼이 있습니다.이 버튼을 클릭하면 두 번째 버튼이 동적으로 생성됩니다. 내가하는 동적으로 생성 된 버튼 (두 번째 버튼)에 클릭 이벤트를 배치해야하지만 클릭 기능이 작동하지 않습니다.jquery에서 동적으로 생성 된 요소에 작업을 추가하려면 어떻게해야합니까?

클릭 기능을 동적으로 생성 된 요소와 함께 사용하려면 어떻게해야합니까?

+2

있습니까 네가 어떻게하는지 보여 줄거야? –

+0

코드와 오류 메시지 또는 작동하지 않는 구체적인 설명을 보여주십시오. –

답변

1

.

예 :

$('button').live('click', function(){ 
    ... 
}); 
+0

굉장, 내가 뭘 찾고 있었는지! –

2

클릭 이벤트가 생성 된 후에 두 번째 버튼에 바인딩해야합니다. 또는 jQuery Live 또는 Delegate 함수를 사용하십시오.

http://api.jquery.com/delegate/

루트 요소의 특정 세트를 기반으로, 현재 또는 미래에 선택, 일치하는 모든 요소에 대해 하나 개 이상의 이벤트에 핸들러를 연결합니다.

더 많은 도움이 필요하면 몇 가지 코드를 게시하십시오.

0

체크 아웃의 jQuery .live()을 당신은 here을 찾을 수있는 jQuery를 .live() 기능을 사용할 필요가

jQeru .live()

1

Here is an example.

마크 업 :

<button id="create">Create</button> 

<div id="container"> 
</div> 

스크립트 :

var count = 0; 
$("#create").click(function(e) { 
    var num = count += 1; 
    var newButton = $("<button>New " + num + "</button>").click(function() { 
     alert("Button " + num + " was clicked."); 
    }); 
    $("#container").append(newButton); 
}); 
0

당신이 jqueries이 방법을 살고 사용하여 이벤트를 첨부해야합니다. 이벤트를 현재 및 미래 요소의 모든 인스턴스에 바인딩합니다.

$('.classname').live('click', function() { 
    alert("triggered"); 
}); 

같은 방식으로 더 많은 요소를 삽입하더라도 classname 클래스의 모든 요소에 click 이벤트가 추가됩니다.

0
<input id="but1" type="button" value="click"></input> 
<script> 
$(document).ready(function(){ 
    $('#but1').click(function(){ 
    var button = $(document.createElement('input')); 
     button.attr('id', 'but2'); 
     button.val('but2'); 
     button.attr('type', 'button'); 
     button.click(function(){alert('hello');}); 

     $(document.body).append(button); 

    }); 

}); 
</script> 
3

내가 jQuery를이 할 수있는 올바른 방법을 V1.7 때문에이 질문은
... 한참 전에 질문을 받았다 아는 것은 :

$(document).on("click",'.myNewlyCreatedElement', function() { 
    // Your action 
}); 

참고 : 당신이 http://api.jquery.com/on/

관련 문제