2013-08-19 2 views
1

내 응용 프로그램에서 picnet tablefilter를 사용합니다.jquery에서 수동으로 이벤트를 첨부하는 데 제한이 있습니까?

http://www.picnet.com.au/resources/tablefilter/demo.htm

Tablefilter는 각 열에 대한 입력을 생성한다. 입력에 일부 문자를 입력하면 필터링이 트리거됩니다.

헤더를 고정시키고 자 할 때, 나는 그 헤더의 사본을 만들어서 tablefilter에서 사용하는 헤더 바로 위에 떠서 올랐다. position: fixed.

내가 대신 ID = "filtertable_filter_3"이 같은 ID = "my_filtertable_filter_3"와 같은 입력을 내장 :

$('#fixed_table thead').append('<tr class="filters">' + $('#container thead .filters').html() + '</tr>'); 

$('#fixed_table thead .filters input').each(function(index) 
{ 
    $(this).attr('id', 'my_' + $(this).attr('id')); 
}); 

을 그래서 지금은 정확히 데모 picnet의 tablefilter의 헤더처럼 보이는 헤더가 헤더가 고정되어 있다는 느낌을주는 원본 헤더 위로 흘러갑니다.

문제의합니다 (picnet 상황없이 명백하게) 그림이 여기에 게시됩니다 : 나는 무엇을 달성하고자하는 http://jsfiddle.net/bJ2K7/21/

:

사용자가 ID를 입력 문자열을 입력하면 = "my_filtertable_filter_3"이면이 함수는 picnet tablefilter에 의해 생성 된 입력 값과 동일한 값을 입력합니다. 나는 또한 (몇 시간 동안 picnets 코드를 읽은 후) 필터를 트리거하는 것으로 보이는 keyup 이벤트를 트리거합니다. 이 같은 이벤트를 잡으려고 노력하는 동안

$('#fixed_table thead .filters input').keyup(function() 
    { 
     var input_id = $(this).attr('id').substr(3); 
     var input_val = $(this).val() ; 
     $('#filtertable #hidden_thead .filters').find('input#filtertable_filter_3.filter').val(input_val); 
     $('#filtertable #hidden_thead .filters').find('input#filtertable_filter_3.filter').trigger('keyup'); 
    }); 

, 그것은 작동하는 것 같군 :

$('#filtertable_filter_3').keyup(function() 
{ 
    alert('event caught'); 
}); 

내 질문 :

이이 문제에 절대적으로 잘못된 접근, 아니면입니다 나는 단지 올바른 사건을 해고하지 않습니까?

문제 :

으로 아래의 코멘트에서 말했다 : 경고가 발사되지만 필터 (입력 값이 채워집니다.) 발견하지 않았나요

+0

나에게 상황에 대한 올바른 접근 방식 인 것 같습니다. 당신은 "그것이 효과가있는 것 같다"고 말했지만, "나는 단지 적절한 사건을 일으키고 있지 않다"라고 말합니다. 그래서 그 사건은 경보를 발사하지만 원래의 기능을 멈추지 않습니다. –

+0

안녕하세요, 귀하의 의견을 주셔서 감사합니다,하지만 그것을 믿을 수 있지만 문제를 작성하는 걸 깜빡 :) 경고는 해고,하지만 필터가 실행되지 않습니다. –

+0

아니요. DOM은 다음과 같습니다. '$ ('body #fixed_table thead .filters input # my_fitertable_filter_3')'보이는 '헤더에 대해.사용자가 문자열을 입력 할 실제 입력에 대해 DOM을 필터링하려고합니다. $ ('body #container #filtertable #hidden_table. 필터 입력 # fitertable_filter_3') ' –

답변

0

무엇 이벤트 내가해야 필터링되지 않은 방아쇠를 당긴다. 그러나 고정 된 머리에 본래의 입력을 덧붙였다, 그리고 그것은 일하는 것처럼 보인다. 그래서 제 솔루션은 엄청난 과잉이었습니다 (적어도 이벤트와 이벤트 핸들러에 관해 배웠습니다).

picnet tablefilter를 사용하고 고정 테이블 헤드를 만들고 싶은 사람이 있다면 jsfiddle의 CSS & html로 충분합니다.

$('#okno #filtertable thead .filters').appendTo('#fixed_table thead'); 
관련 문제