2011-09-22 3 views
1

테이블의 addrow 버튼을 클릭하면서 동적 행을 추가하는 기능이 있습니다. 내 문제는 새 행에서 선택 목록을 변경하는 동안 메시지를 경고해야하지만 Jquery 실시간 클릭을 사용할 때 작동하지 않는다는 것입니다. 그러나 Jquery를 사용하는 동안 동적으로 추가되지 않는 다른 모든 선택 상자에 대한 작업은 바인드를 클릭합니다. 아무도 나에게이 문제를 해결할 수있는 도움을 줄 수 있습니까?동적 컨트롤을 추가하는 동안 JQuery 라이브 Jtree가 작동하지 않습니다.

내 프로젝트에서 우리는 HTML 컨트롤을 포맷하기 위해 Jqtransform을 사용하고 있습니다. 내가 지금까지했던 어떤

$('div.jqTransformSelectWrapper ul li a').live('click',function() { 
     alert('message');} 
    }); 
+1

사용해보십시오 [jQuery의 라이브] (HTTP :/

/* Fire the onchange event */ if ($select[0].selectedIndex != $(this).attr('index') && $select[0].onchange) { $select[0].selectedIndex = $(this).attr('index'); $select[0].onchange(); } 
이 이

이제 단순히 그 라인 아래에 다음을 추가

다음 줄을 당신의 jquery.jqtransform.js 파일을 열고 찾기 /api.jquery.com/live/)를 사용하십시오. –

+0

의심의 여지가 있습니까? Jqtransform.js의 버그입니까? –

+0

이것은 Jqtransform –

답변

5

나는 다음을 수행하여 선택 목록의 변경 이벤트를 트리거하여 Jqtransform.js 파일을 modyfying하여이를 해결했다. 실제로 Jqtransform.js 관련 버그

이 게시물을 가지고 있다면 jqtransform이 무엇인지 알았을 것이며 아마도 드롭 다운 목록의 변경 이벤트로 어려움을 겪고있을 것입니다.

왜 작동하지 않는 까닭은 jqtransform이 정렬되지 않은 목록을 사용하여 드롭 다운 목록을 만든 다음 드롭 다운 목록을 숨길 수 있기 때문입니다.

수정 프로그램은 실제로 매우 간단합니다.

/* Fire the change event */ 
if ($select[0].selectedIndex != $(this).attr('index')) { 
    $select[0].selectedIndex = $(this).attr('index'); 
    $($select[0]).trigger('change'); 
} 
0

사용 jQuery를 delegate() 대신합니다. 여러 가지 이유로 live보다 좋습니다. 디버깅에도 alert() 대신 console.log()을 사용하십시오!

$('div.jqTransformSelectWrapper ul li').delegate('a', 'click',function() { 
     console.log('message');} 
    }); 
+0

의 버그입니다. - 귀하의 코드를 사용해 보았지만, 동적으로 추가 된 선택 상자와 기존의 선택 상자 모두에 대해 작동하지 않는다고 유감스럽게 생각합니다. –

관련 문제