【问题标题】:Jquery toggle only working after clicking on table row IE8Jquery 切换仅在单击表行 IE8 后工作
【发布时间】:2013-04-29 20:05:35
【问题描述】:

我有少量的 Jquery,它会根据单击复选框来隐藏/显示两个元素。现在这在 Firefox 中完美运行,但是当我在 IE8 中测试时,只有在单击文本框然后单击 TR 中的任意位置后,切换才会起作用。这是我的复选框代码:

<input type="checkbox" id="noEOS@(Model.QuoteLineKey)" name="noEOS@(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();
    }

【问题讨论】:

标签: jquery asp.net-mvc internet-explorer-8


【解决方案1】:

试试这个

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

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

【讨论】:

  • 在 IE8 中发生了同样的事情,需要单击 tr 才能隐藏/显示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
相关资源
最近更新 更多