>웹 프론트엔드 >JS 튜토리얼 >다중 jquery.datatable 공존, 비정상적인 체크박스 Selection_javascript 기술에 대한 빠른 솔루션

다중 jquery.datatable 공존, 비정상적인 체크박스 Selection_javascript 기술에 대한 빠른 솔루션

WBOY
WBOY원래의
2016-05-16 17:10:03948검색

[문제 원인]

이는 jquery.datatable 컨트롤 자체의 결함이어야 합니다. 이 컨트롤의 확인란 플러그인 ID는 하드 코딩되어 있으므로 페이지에서 여러 데이터 테이블을 참조하는 경우 모두 선택 이벤트가 모든 데이터 테이블과 일치하여 여러 테이블의 모든 확인란이 선택됩니다.

【해결책】

따라서 jquery.datatable 컨트롤을 수정하고 생성된 각 데이터 테이블 아래의 확인란에 다른 ID를 부여하는 것이 가장 좋습니다. 데이터 테이블의 ID가 다르기 때문에 데이터 테이블의 ID를 확인란의 접두사로 사용할 수 있습니다. 고유한 ID를 형성합니다. 이벤트를 호출하려면 이 확인란의 특정 호출 이벤트도 동기화하고 이 새 ID로 바꿔야 합니다.

[파일 수정]

jqurey.datatable.ext.js(v0.0.1)

1. init 메소드 수정:

코드 복사 코드는 다음과 같습니다. 🎜>
$("#" options.select_table).find('thead tr th:first-child')
.prepend('');
==>

$("#" options.select_table).find('thead tr th:first-child')

.prepend('');


2.subscribeAllChk 메소드 수정:
코드 복사 코드는 다음과 같습니다:
$("#chk_all").click(function(){
==>

$("#" $.fn.datatable_ext.defaults.select_table "_chk_all").click(function(){



3.subscribeChk 메소드 수정:
코드 복사 코드는 다음과 같습니다.
if(checked_chk_num == curr_page_chk_num){
           $( "#chk_all").attr('checked', 'checked');
}else{
} $("#chk_all").removeAttr('checked');
}

==>

if(checked_chk_num == curr_page_chk_num){

  $("#" $.fn.datatable_ext.defaults.select_table "_chk_all").attr('checked', 'checked');
  }else{
$("#" $.fn.datatable_ext.defaults.select_table "_chk_all").removeAttr('checked');
}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.