在設置checked時,如jquery
$("#checkbox").attr("checked",true);
頁面顯示checked屬性已添加,可是未被選中(沒打勾),
this
在以下代碼中沒有問題:code
function tree_item_checked(cl,type){ if($("#item_"+cl).is(":checked")) { $("input[key='tree_item_checkbox']").each(function(){ if($.trim($(this).attr("id"))!=("item_"+cl)){ $(this).attr("checked",false); } }); $("#superNode").val(cl); } else{ $("#superNode").val(""); } }
這裏只設置取消選中,運行正常。input
若是須要經過點擊按鈕或者超連接刷新checkbox選中狀態,以下:it
function(rowId, status, e){ if (!$("#item_"+rowId).is(":checked")){ $("#item_"+rowId).attr("checked",true); $("#superNode").val(rowId); $("input[key='tree_item_checkbox']").each(function(){ if($.trim($(this).attr("id"))!=("item_"+rowId) && typeof($("#item_"+rowId).attr("checked"))!="undefined"){ $(this).attr("checked",false); } }); } else { $("#superNode").val(""); $("#item_"+rowId).attr("checked",false); } }
會產生沒法選中的問題。這裏將attr改成prop方法運行正確:io
function(rowId, status, e){ if (!$("#item_"+rowId).is(":checked")){ $("#item_"+rowId).prop("checked",true); $("#superNode").val(rowId); $("input[key='tree_item_checkbox']").each(function(){ if($.trim($(this).attr("id"))!=("item_"+rowId) && typeof($("#item_"+rowId).attr("checked"))!="undefined"){ $(this).prop("checked",false); } }); } else { $("#superNode").val(""); $("#item_"+rowId).prop("checked",false); } }
該方法是jquery1.6新增,建議使用prop方法給屬性賦值。function
筆記,備忘方法