2012-12-13 2 views
0

텍스트 상자에 입력 된 값을 기준으로 클릭 이벤트로 div를 만들었습니다. 페이지를 열고 임의의 행을 클릭하면동적 이벤트가 작동하지 않는 이벤트를 클릭하십시오.

An Example Here

, 당신은 경고를 받게됩니다. 그러나 텍스트 상자 (숫자 입력)에서 값을 변경하고로드 버튼을 누르면 입력 된 숫자에 따라 행이로드됩니다. 당신이 어떤 행을 클릭하면

이제 클릭 이벤트는 .....

+0

문제가있는 JS 코드를 표시하면 도움이 될 것입니다. – Blender

+0

나는 HTML이 jsFiddle에 대한 링크라고 생각했다. 링크로 이동하면 코드가 표시됩니다. – Luke

답변

2

당신이 필요로하는이 점에서 어떤 도움을 매우 감사

을 .......... 작동하지 않습니다 live 기능.

$(".schoolselect").live("click", function() { 

는 여기를 참조하십시오 : http://jsfiddle.net/27Z3t/

+0

마우스 센터 이벤트에 대해서도 예방 조치를 위해 같은 것을 추가하겠습니다. –

+0

초기 바이올린을 게시 한 후 mouseover/mouseout 이벤트를 확인했습니다. 나는 최신 링크에있는 이들 모두에게 라이브를 추가했습니다. – Samsquanch

1

$('.schoolselect')에 대한 귀하의 클릭 핸들러가 한 번만 페이지가로드 될 때 부착되어있다. live jQuery event이 아니지만 해당 기술은 대리자 모델을 사용하여 지원되지 않습니다.

클릭을 처리 할 수있는 $('#divHSSchoolResultTable')에 대리인을 첨부 할 수 있습니다.

$('#divHSSchoolResultTable').delegate('.schoolselect', 'click', function() { alert(); }); 

자세한 내용은 jQuery delegate을 참조하십시오.

+1

사실 "jQuery 1.7부터 .delegate() 메서드는 .on() 메서드로 대체되었지만 이전 버전에서는 이벤트 위임을 사용하는 가장 효과적인 방법으로 남아 있습니다." –

+0

@Mario 이벤트 처리기는 현재 선택된 요소에만 바인딩됩니다. 코드가 .on()을 호출 할 때 페이지에 존재해야합니다. 새 HTML이 페이지에 삽입되는 경우 새 HTML이 페이지에 배치 된 후 요소를 선택하고 이벤트 처리기를 연결하십시오. 또는 위임 된 이벤트를 사용하여 이벤트 처리기를 연결할 수 있습니다. –

+0

방금 ​​전에 말한 내용에 대해 논쟁하고있는 것은 아니지만 jQuery 팀이 .on() 메소드의 .delegate() 메소드를 변경하기로 결정한 이유는 무엇입니까? (저는 실제로 궁금합니다.) –

관련 문제