Datatables를 사용하여 테이블 내의 일부 열에 열 검색을 추가하려고합니다. 테이블의 각 헤더 셀에 검색을위한 입력 필드를 추가하고 있습니다. Datatables는 헤더를 클릭 할 때마다 정렬 방법을 변경하도록 만들었으므로 .stopPropagation
헤더 셀의 입력 부분을 클릭 할 때 열의 정렬이 변경되지 않도록 입력 필드에 대한 클릭시 이벤트에 첨부하여 삽입했습니다 . 유일한 문제는 .stopPropagation
이 작동하고 정렬에 영향을주지 않지만 입력 필드를 클릭 할 때 필드에 텍스트를 추가 할 수 없다는 것입니다. 내가 뭘 잘못하고 있는지 잘 모르겠습니다. 다음은 코드 스 니펫입니다 (이 코드는 사이트의 각 테이블을 생성하기위한 코드에 있습니다).
var columnsearch = $(this).find('th');
columnsearch.each(function () {
var title = $(this).text();
$(this).append( '<input type="search" placeholder="Search '+title+'" />' );
})
var textbox = $(this).find('input')
textbox.click(function (event) {
event.stopPropagation();
})
몇 가지 조사를 수행 한 후 Chrome 검사기의 Event Listeners 부분을 사용하여 발견 한 결과 열을 재정렬하는 데 사용되는 Datatables, colReorder에서 활성화 한 기능이 충돌 mousedown
이벤트로 입력 필드의 기능을 방해하고 있음을 발견했습니다 . 나는 추가했다 :
textbox.mousedown(function(event){
event.stopPropagation();
})
열 검색 JS 조각에 문제가 해결되었습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다