2013-03-17 2 views
0

document.ready()arindic 클래스의 텍스트 영역을 동적으로 만듭니다. 그들의 역동적 인 세대가 document.ready() 루틴 내 이상, 여전히 후 생성 후 동적으로 특정 클래스의 바인딩 요소

그런 다음,이 같은 keypress 이벤트와 이러한 요소 바인딩 :

$('.arindic').bind('keypress', function(evt){ 
    // do lots of stuff 
}); 

을했으나 제대로 동작하지 않습니다. 나는이 때문에 document.ready()의 바닥에서 잘 작동 "물건을 많이하고"의 기능을 알고

$('.arindic').keypress(function(evt){ // do lots of stuff // }); 

을이 이미 정적 페이지에 존재 텍스트 영역에 대해 잘 작동합니다. 동적 요소를 바인딩하는 방식에 문제가 있습니까? .bind() 대신 .on().live()도 시도했지만 아무 소용이 없습니다.

+0

'.on'이 작동하지 않았습니까? 작은 [피들] (http://jsfiddle.net)에서 재현 할 수 있습니까? – soyuka

+0

동적으로 생성 된 요소에'.on'을 바인딩 한 것 같습니다. 아래 예제는 모든 .arindic 텍스트에 대해 확실히 작동합니다. –

+0

동적으로 생성 된 요소에 바인딩하면 Chrome에서 작동합니다. http://jsfiddle.net/m9ZQc/4 /. –

답변

2

가장 좋은 방법은 .on()을 사용하여 정적 요소에 바인딩하고 동적으로 생성 된 요소에 버블 링하는 것입니다. 좋은 일이 아닌에 바인딩하는 문서를 사용

$(document).on('keypress', '.arindic', function(event) 
{ 
    // do lots of stuff 
}); 

, 나는 .arindic가 그 정적에 포함되는 최고 수준의 요소로 변경하고, 거기에서 거품이 이벤트를 허용 것입니다.

+0

'body'또는 요소 컨테이너에 바인딩 할 수 있습니다. – soyuka

관련 문제