0

一部の TR の可視性を切り替える関数を起動するチェックボックスの onChange イベントがあります。私の問題は、このコードが Firefox でしか機能しないことです。私はそれがie8で動作することを望みます。

function toggleVisibility() {

    if ($("#ctl00_PageContent_chkVisibility").is(':checked')) {
        $('#ctl00_PageContent_freight_rate_column_chaair tr').each(function(i, val) { // Loop through rows in grid
            if (i > 9 & i < 28) {
                $('#ctl00_PageContent_freight_rate_column_chaair_r' + i).hide();
            };
        });
    }
    else {
        $('#ctl00_PageContent_freight_rate_column_chaair tr').each(function(i, val) { // Loop through rows in grid
            if (i > 9 & i < 28) {
                $('#ctl00_PageContent_freight_rate_column_chaair_r' + i).show();
            };
        });
    };
};

これを行うより良い方法を知っている人はいますか?

ありがとう

4

2 に答える 2

1

IDをインデックス番号に連結しようとする代わりに、「で始まる」セレクターを使用してみます。次のようなことを試してください:

$('#ctl00_PageContent_chkVisibility').change(function () { 
    toggleVisibility()
});

function toggleVisibility() {
    if ($("#ctl00_PageContent_chkVisibility").is(':checked')) {
        $('#ctl00_PageContent_freight_rate_column_chaair tr').each(function (i, val) { // Loop through rows in grid
            if (i > 9 & i < 28) {
                $('input[id^="ctl00_PageContent_freight_rate_column_chaair_r"]').hide();
            };
        });
    }
    else {
        $('#ctl00_PageContent_freight_rate_column_chaair tr').each(function (i, val) { // Loop through rows in grid
            if (i > 9 & i < 28) {
                $('input[id^="ctl00_PageContent_freight_rate_column_chaair_r"]').show();
            };
        });
    };
};

ループ中はインデックスのみを確認する必要があるため、ID をインデックス番号に連結する必要はありません。そのインデックスで、hide 関数はそのインデックスの行を非表示にするため、非表示にする行の正確な ID を指定する必要はありません。

于 2012-07-20T12:24:13.020 に答える
0

aspxページで次のように宣言したと思います:

<asp:CheckBox ID="chkId" runat="server" onchange="toggleVisibility()"/>

これは FF では機能しますが、IE では機能しません。

チェックボックス要素の onchange 属性を削除し、関数 toggleVisibility も削除し、次を使用して関数を jquery に登録してみてください。

<script language="javascript">
$(function () {

$('#ctl00_PageContent_chkVisibility').change(function () {             
       // 
       // paste here your existing code , the body of the function toggleVisibility
});
});
</script>
于 2012-07-20T12:33:25.810 に答える