2015-02-03 2 views
0

내 격자에 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 
}); 
+0

오류가 발생한 부분을 해결해야한다고 생각합니다. 'console.log()'를 사용하고 변수의 값을보십시오. IE 8은 jQuery 2.x, branch에서 지원되지 않으므로 [jQuery migrate] (https://github.com/jquery/jquery-migrate/)를 사용해야 할 수도 있습니다. –

+0

나는 실패를 해결했다. 'item = $ (v); //이 행에서 Jscript 오류, IE8의 잘못된 속성입니다. – Sarly

+1

클릭 이벤트가 아닌 변경 이벤트 사용 –

답변

1

당신의 변수를 작동 라는 항목은 declare.So 파이어 폭스는 잘 작동하지만 IE8은 작동하지 않습니다.

관련 문제