나는 아래의 jQuery 함수를 작성하여 데이터 테이블에서 필터를 호출했다. 하지만 "변경"jQuery 함수는 한 번의 클릭으로 두 번 호출하는 것처럼 보입니다. 따라서 필터 중 하나를 해제하려고하면 즉시 다시 돌아옵니다.onchange 이벤트 핸들러가 두 번 트리거 됨
기능 : 누군가가 나를 변경 기능을 여러 번 트리거 알려 수 있다면
$(document).ready(function() {
var table = $('#example').DataTable({
rowReorder: {
selector: 'td:nth-child(2)'
},
responsive: true,
initComplete: function() {
var filters = $('div[id$=referalFilters]').find('input:checkbox');
filters.each(function() {
dict.push({
key: $(this).prop('name'),
value: $(this).prop('checked')
});
$(this).change(function() {
var currentName = $(this).prop('name');
for (var i = 0; i < dict.length; i++) {
if (dict[i].key == currentName) {
if (dict[i].value == true) {
dict[i].value = false;
} else {
dict[i].value = true;
}
}
}
for (var i = 0; i < dict.length; i++) {
if (dict[i].value == true) {
$.fn.dataTable.ext.search.push(function (settings, data, dataIndex) {
var currentStatus = data[3];
var found = false;
for (var i = 0; i < dict.length; i++) {
if (currentStatus == String(dict[i].key)) {
if (dict[i].value == true) {
found = true;
}
}
}
if (found) {
return true;
}
return false;
})
}
}
table.draw();
});
});
//this.api().columns().every(function() {
// var column = this;
//});
}
});
});
내가, 감사합니다.
다음은 jsfiddle : https://jsfiddle.net/a81h11tc/입니다. Js fiffle에서는 버튼이 전환되는 것으로 보이지만 필터링이 발생하지 않습니다.
동일한 'id'를 공유하는 여러 요소가 있습니까? – melancia
우리를 위해 JSFiddle을 설정하거나이 HTML을 동반 한 스 니펫으로 만들 수 있습니까? –
@AngelosChalaris : 지금 할게요 –