2013-04-29 53 views
0

我有一小部分基于单击复选框隐藏/显示两个元素的Jquery。现在,这在Firefox中完美工作,但是当我在IE8中测试时,切换将仅在单击文本框然后单击TR中的任意位置后才起作用。这里是我的复选框代码:Jquery只在点击表格行后才能切换IE8

<input type="checkbox" id="[email protected](Model.QuoteLineKey)" name="[email protected](Model.QuoteLineKey)" checked="@(Model.HasNoEndOfSupportDate)" onchange='javascript: noEOS(@(Model.QuoteLineKey)); return false;'/> 

这里是我的jQuery函数

function noEOS(id) { 

     $('#spanNoEOS' + id).toggle(); 
     $('#spanEOS' + id).toggle(); 
     if ($('#noEOS' + id).is(':checked')) { 
      $('#EndOfSupportDate' + id).val(''); 
     } else { 
      $('#EndOfSupportDate' + id).val($('#CoTermExpiryDate').val()); 
     } 
    } 

我曾试图改变.toggle到下面没有成功。

var elem = $('#spanNoEOS' + id)[0]; 
    if (elem.style.display == 'none') 
     $('#spanNoEOS' + id).show(); 
    else { 
     $('#spanNoEOS' + id).hide(); 
    } 
    var elem2 = $('#spanNoEOS' + id)[0]; 
    if (elem2.style.display == 'none') 
     $('#spanEOS' + id).show(); 
    else { 
     $('#spanEOS' + id).hide(); 
    } 
+0

邮完整代码重现您的问题或创建的jsfiddle - IE和FF对DOM许多特定threatment和VAR关闭 – 2013-04-29 11:55:34

+0

重复:http://stackoverflow.com/questions/10579019/onchange-on-radiobutton-not-working-correctly-in-ie8 – 2013-04-29 11:55:35

回答

0

试试这个

var e = $('#spanEOS' + id); 
    e.is(':hidden') ? e.show() : e.hide(); 

    var e2 = $('#spanNoEOS' + id); 
    e2.is(':hidden') ? e2.show : e2.hide(); 
+0

同样的事情发生在IE8中,tr需要点击hide/show来工作。 – 2013-04-29 12:56:24