나는 TableExport.js 스크립트를 사용하여 html 테이블을 내보내고 있으며 원하지 않는 행을 숨김으로써 필터링 한 후에 데이터를 익스포트해야한다. TableExport의 메서드 .update()
은 여기에서 정말 유용하지만, 데이터가 필터링 될 때마다 onchange
이벤트와 관련된 몇 가지 문제가 있습니다.자바 스크립트에서 객체와 그 메소드를 onchange 함수로 전달하기
$(function() {
var exportedTable = $("#taskListTable").tableExport();
exportedTable.update({
// some options
});
$('body').on('change', '.filter', function (exportedTable) {
// some code for filtering
tableUpdate(exportedTable);
});
})
function tableUpdate(table) {
table.update({
ignoreCSS: ["tr.tableexport-ignore", "tr.tableexport-ignore>td",
"tr.tableexport-ignore>th", "tr.hidden", "tr.hidden>td"]
});
}
나는 유형 Uncaught TypeError: Cannot read property 'update' of undefined
의 오류가 계속 : 여기에 내 코드의 관련 부분이다. 나는 많은 스레드 (예 : Javascript passing object to function)와 다른 정보를 값과 참조로 전달하는 것의 차이를 이해하기 위해 읽었지만 더 많이 읽으면 혼란스러워졌다. 그래서 누구든지 내 접근 방식에서 실패한 것을 볼 수 있습니까? - 부분적으로는 레거시 코드이지만 필요한 경우 대부분을 다시 구조화 할 수 있습니다.
이것이 JS 오용의 문제인 것 같아요.이 질문이 TableExport를 사용하는 사람들과 비슷한 JS 문제가있는 사람들 모두에게 유용 할 것입니다. 그래서 나는 thee, JavaScript Jedis를 소환한다!
변경 ('몸') ('변화', '.filter', 기능() {'에 객체는 이미 ** 클로저에 갇혀 있습니다 ** 그래서 사용하십시오! –
감사합니다! 효과가 있습니다! 클로저에 더 자세히 파고들 수있는 잘 설명 된 소스에 대해 알고 있습니까? :) – jabadejat
예 : [ ** 첫 번째 선택 : D **] (https://www.google.com/), [** this **] (http://stackoverflow.com/questions/111102/how-do-javascript-closures -work) 및 [** this **] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures)! –