作者arliang (arliang)
看板Ajax
标题[问题] 在ie6上使用jQuery控制DOM有bug,该如何解?
时间Wed Oct 6 21:43:02 2010
严格说起来是"生成"CheckBox,然後设定checked=true。
在IE8及FF都没有问题,很不幸客户用IE6
checkFlag 、
//以下为jQuery语法.
........
//清除feeDetailTable.
jQuery("
#feeDetailTable TR[id!=feeDetailTitle] ").remove();
//增加资料.
for(var ii=0;ii<feeSeq.length;ii++){
var row = (ii%2==0?jQuery('<tr></tr>').addClass('TableTd1'):
jQuery('<tr></tr>').addClass('TableTd2'));
var col1 = jQuery('<td></td>').attr({width : '30' , align : 'center' });
var col2 = jQuery('<td></td>').attr({width : '50' , align : 'left' });
var col3 = jQuery('<td></td>').attr({width : '400' , align : 'left' });
var col4 = jQuery('<td></td>').attr({align : 'left' });
var input = jQuery('<input>').attr({align : 'left' ,
type : 'text' ,
name : 'fcsmFeeDetailVO.feeAmt' ,
value : feeAmt[ii] })
.addClass('Form1')
.blur(function(){reComputeFee();});
if ( checkFlag[ii] == 'y' || checkFlag[ii] == 'Y' ||
checkFlag[ii] == 'true' || checkFlag[ii] == 'TRUE'){
jQuery(col1).append(jQuery('<input type="checkbox"></input>')
.attr({ name : 'fcsmFeeDetailVO.checkFlag' ,
checked : 'true' ,
~~~~~~~~~~~~~~~~~~~~~
重点只有这一行,col1里的CheckBox不能设为打勾状态
value : feeAmt[ii]})
.addClass('Form1')
.click(function(){reComputeFee(this);}));
}else
jQuery(col1).append(jQuery('<input type="checkbox"></input>')
.attr({name : 'fcsmFeeDetailVO.checkFlag' ,
value : feeAmt[ii] })
.addClass('Form1')
.click(function(){reComputeFee(this);}));
jQuery(col2).text(feeType[ii]).attr('name' , 'fcsmFeeDetailVO.feeType');
jQuery(col3).text(feeTypeName[ii]).attr('name' , 'fcsmFeeDetailVO.feeTypeName');
jQuery(col4).prepend(input);
jQuery(row).append(col1).append(col2).append(col3).append(col4);
jQuery("
#feeDetailTable").append(row);
}
}
当程式跑玩,画面上的CheckBox并不如预期那样打勾。
爬文後有高手说是IE6在DOM的操弄术有Bug
最好的解法是用setTimeout,
请问万能的乡民,还有其他的解法吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.120.175.188
※ 编辑: arliang 来自: 59.120.175.188 (10/06 21:49)
※ 编辑: arliang 来自: 59.120.175.188 (10/06 21:52)
1F:→ tn801534:true不要""看看? 10/06 22:19
2F:→ tn801534:其实照标准这样最好).attr('checked', 'checked') 10/06 22:22
3F:推 s25g5d4:checked: checked 10/06 22:35
4F:→ TonyQ:attr checked checked 10/07 03:11
5F:→ TonyQ:这其实不是bug,而是对标准的误解... 10/07 03:11
刚刚试过了,改成attr checked: 'checked' 或是attr 'checked','checked'
都不行。还是不会打勾
※ 编辑: arliang 来自: 59.120.175.188 (10/11 16:47)
6F:→ mesak:'checked',true 10/11 17:42
7F:→ mesak:你的input 为什麽要有关闭标签? 10/11 17:43
8F:→ mesak:<input type="checkbox" value="0"/> 10/11 17:44
9F:→ TonyQ:是我弄错了,你有两个选择 , 1.先append 再attr checked 10/11 22:38
10F:→ TonyQ:2.在给 input type="checkbox" 时就给 checked='checked' 10/11 22:38
12F:→ TonyQ:i check both on ie6 , it wouble be working :~ 10/11 22:39