내 격자에 checkAll,checkRow,checkCell
이라는 이름의 체크 박스 트리 유형이 있습니다. checkAll
확인란을 클릭하면 모든 확인란이 선택됩니다. checkRow
확인란을 클릭하면이 행의 확인란이 선택됩니다. 이제 동일한 코드를 사용하여 checkAll,checkRow
이벤트를 만들었습니다. checkAll
이벤트가 잘 작동하지만 checkRow
이벤트가 잘못되었습니다. 그것은 Jscript 오류를 말합니다. 그리고 그것을 jQuery 방식을 사용하여 변경하려고하면 잘 작동합니다. IE8에서 체크 박스를 찾을 때 내 코드 간의 차이점은 무엇입니까?IE8에서 체크 박스를 찾을 때 내 코드 간의 차이점은 무엇입니까?
첫 번째 방법 : checkAll 잘 작동, checkRow는 checkrow 이벤트
$("#checkAll").on("click", function (e) {
var target = $(e.target), item, checked = target.prop("checked"),
checkboxes = $("#Grid input");
checkboxes.each(function (i, v) {
item = $(v);
if(!item.prop("disabled"))
item.prop("checked", checked);
});
});
$("#Grid").on("click", ".checkRow", function (e) {
var target = $(e.target), checked = target.prop("checked"),
td = target.parent("td"), tr = td.parent("tr"),
checkboxes = tr.find("input[class!='checkRow']");
checkboxes.each(function (i, v) {
item = $(v); //in this row Jscript error,wrong property in IE8,but firfox work well
item.prop("checked", checked);
});
});
두 번째 방식으로 작동하지 않고, 첫 번째 방법에 checkRow
이벤트에서 잘
$("#Grid").on("click", ".checkRow", function (e) {
var target = $(e.target), checked = target.prop("checked"),
td = target.parent("td"), tr = td.parent("tr"),
checkboxes = tr.find("input[class!='checkRow']");
checkboxes.prop("checked", checked);//work well
});
오류가 발생한 부분을 해결해야한다고 생각합니다. 'console.log()'를 사용하고 변수의 값을보십시오. IE 8은 jQuery 2.x, branch에서 지원되지 않으므로 [jQuery migrate] (https://github.com/jquery/jquery-migrate/)를 사용해야 할 수도 있습니다. –
나는 실패를 해결했다. 'item = $ (v); //이 행에서 Jscript 오류, IE8의 잘못된 속성입니다. – Sarly
클릭 이벤트가 아닌 변경 이벤트 사용 –