Свойства отображения IE7 и CSS - PullRequest
0 голосов
/ 15 марта 2011

Вот некоторая разметка asp.net:

<tr style="display:none" id="AllInRateRow">
                    <td id="td6">
                            All-In Fixed Rate <span id="allInRateHelp" />
                    </td>
                    <td id="td7">
                        <%= Html.TextBoxFor(m => m.FixedRate, new { @class = "economicTextBox", propertyName = "FixedRate", dontRegisterNewIndication = true })%> %
                    </td>
                </tr>

                <tr style="display:none" id="ProfitRow">
                    <td id="td93">
                        Your Swap Profit
                    </td>
                    <td id="yourSwapProfit">
                        <%= Html.TextBoxFor(m => m.Fees.ProfitAmount, new { @class = "economicTextBox", propertyName = "Fees.ProfitAmount", dontRegisterNewIndication = true })%>
                            <%= Html.RadioButtonFor(m => m.Fees.ProfitType, (int)Chatham.Enumerations.IndicationProfitType.bps,
                                                    new { label = "bps", propertyName = "Fees.ProfitType", dontRegisterNewIndication = true })%>
                        bps
                        <%= Html.RadioButtonFor(m => m.Fees.ProfitType, (int)Chatham.Enumerations.IndicationProfitType.CurrencyAmount,
                                                                new { label = "$", propertyName = "Fees.ProfitType", dontRegisterNewIndication = true })%>
                        $
                    </td>
                </tr>

Я думаю, что это проблема со свойством display для CSS. Он не отображает их при загрузке страницы, что является правильным, но тогда выбор этого должен изменить это:

<td id="td4">
                        Options <span id="solverHelper" />
                    </td>
                    <td id="solveType">
                        <%=Html.DropDownListFor(m => m.Fees.CalculationSource, DropDownData.SolverOptionsList(),
                                                                new { propertyName = "Fees.CalculationSource", dontRegisterNewIndication = true })%>
                    </td>

И это происходит через JQuery, устанавливающий CSS и изменяющий его следующим образом:

    var pricingOptions = $("#Fees_CalculationSource").val();
            if(pricingOptions == <%= ((int)Chatham.Web.Models.Indications.SwapModel.SolverOptions.AllInRate).ToString() %>)
            {
                $("#AllInRateRow").css("display", "none");
                $("#ProfitRow").css("display", "table-row");
                if(canExcludeFees) $("#IncludeFeesOption").css("display", "table-row");
                else $("#IncludeFeesOption").css("display", "none");

            }
            else if (pricingOptions == <%= ((int)Chatham.Web.Models.Indications.SwapModel.SolverOptions.Profit).ToString() %>)
            {
                $("#AllInRateRow").css("display", "table-row");
                $("#ProfitRow").css("display", "none");
                $("#IncludeFeesOption").css("display", "table-row");
                if(canExcludeFees) $("#IncludeFeesOption").css("display", "table-row");
                else $("#IncludeFeesOption").css("display", "none");

            }
            else if (pricingOptions == <%= ((int)Chatham.Web.Models.Indications.SwapModel.SolverOptions.None).ToString() %>)
            {
                $("#AllInRateRow").css("display", "table-row");
                $("#ProfitRow").css("display", "none");
                $('input[propertyname=Fees.IncludeFeeIndicator]:eq(1)').attr('checked', 'checked');
                $(

"#IncludeFeesOption").css("display", "none");
        }

Я думаю, что IE7 не может работать с установкой CSS для свойства строки таблицы, но он работает с 'none'.

Я прав? И если я буду, что бы обойти?

1 Ответ

1 голос
/ 15 марта 2011

Если я правильно помню, IE7 использует display:block. Самый простой способ показать элементы - просто вызвать методы show / hide из jQuery, а не пытаться самостоятельно управлять свойством display.

$("#AllInRateRow").show();
$("#ProfitRow").hide();

Это будет работать во всех браузерах, и вам не нужно беспокоиться о специфике браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...