2014-02-12 8 views
4

테이블 행을 처리하기 위해 키보드를 사용하는 사용자 지정 JS 함수를 만들었습니다. 사실, 위/아래 키를 사용하여 행 (미리보기 세부 정보)을 선택하고 Enter 키를 두 번 클릭하여 시뮬레이션합니다 (세부 정보 편집).JQuery ON 선택기가 작동하지 않습니다.

그것은 매우 잘 작동

, 당신은 ... 테이블에 http://jsfiddle.net/n6hn2/19/ 그냥 초점에서 일하는 예를보고 UP ​​/ DOWN 시도/입력하고 콘솔을 볼 수 있습니다

  1. 이 선택에서 작동하지 않는 이유는

    , 이

    $('#' + tableid).on('keyup', 'tbody', function(e) {... 
    

    처럼 또한 선택으로 'TBODY의 TR'를 시도하고, $('#' + tableid + ' tbody tr') 아무것도하지만.

  2. 입력 상자 (search_article)에 내용을 입력하고 HIT Enter를 누르면 DblClick 함수가 트리거됩니다. 실제로 셀렉터가 없어도 괜찮습니다. 그러나 나는 그것을 원하지 않습니다.

    <table id="tableid" tabindex="0"> 
    

    $("#tableid").on('keyup', function(){ 
        console.log("2"); 
    }); 
    

    테스트를 :

+0

TBODY은의 keyup 이벤트가 시작되지 않는 이유입니다, 집중 할 수 없습니다. tbody에 대한 속성 tabindex 설정보기 : http://jsfiddle.net/n6hn2/21/ –

+0

죄송 합니다만, tbody, not table에 초점을 두어야합니다. http://jsfiddle.net/n6hn2/26/ (또는 이전 jsfiddle에서 tbody를 클릭하여 초점을 맞 춥니 다.) 예 :'#tableid : focus {outline : none;}'을 사용하여 초점을 맞춘 개요 스타일을 제거 할 수 있습니다. http://jsfiddle.net/n6hn2/28/ –

+0

This 정답입니다. 답변을 어떻게 투표하고 설정할 수 있습니까? – MiTja

답변

1

, tbody 요소를 초점이 맞지 않으면 tbody에 tabindex 속성을 설정해야합니다. 예 :

tabindex="-1" 

완료참조 너무 325,사용하여 CSS 개요 :

#tableid :focus {outline:none;} 

는 그럼, 당신은 TBODY에 핸들러의 keyup 사용할 수 있습니다

$('#' + tableid).on('keyup', 'tbody', function(e) {...}); 
0

나는 코드를 포크 한이 바이올린은 잘 작동하는 것 같다 : http://jsfiddle.net/5mxS2/

가장 큰 차이점은 on 지금과 같이 input에 연결한다는 것입니다 : 기본적으로

$('#' + tableid + ' input').on('keyup', function(e) { 
    alert('up'); 
}); 
+0

이것은 해결 방법입니다 ... – MiTja

+0

죄송합니다. 방금 예제를 다시 확인했습니다. 이것은 내가 원하는 것이 아닙니다. 내 기능을 위/아래/입력으로 유지하고 싶지만 TBODY는 TABLE이 아니라. thead/input 다른 부분에 대해서는 다른 함수를 썼습니다. 어쨌든 고마워. – MiTja

관련 문제