0

この問題は IE でのみ発生し、すべてが Firefox と Chrome で問題なく動作します。これらの甘い iPhone スタイルの jQuery スイッチを使用したいフォームがあります。これは基本的にスタイル付きのチェックボックスです。私が持っているテーブルは、垂直スクロール バーのあるパネル内にあります。チェックボックスをそのまま (jQuery スタイルなし) にすると、それらはパネル内にとどまり、他のすべての要素と共にスクロールします。チェックボックスがスタイル設定されるとすぐに、それらはスクロール パネルから「抜け出し」、ページを流れ落ちますが、他のすべての要素 (ラベルと ddl) はパネル内にとどまります。適用される jQuery スタイルのコードは次のとおりです。

<script type="text/javascript">
    $(document).ready(function () {
        $('.inOut:checkbox').iphoneStyle({
            checkedLabel: 'IN',
            uncheckedLabel: 'OUT'
        });
        $('.late:checkbox').iphoneStyle({
            checkedLabel: 'LATE',
            uncheckedLabel:'ON TIME'
        });
        $('.leaveEarly:checkbox').iphoneStyle({
            checkedLabel: 'YES',
            uncheckedLabel: 'NO'
        });
    });
</script>

フォーム要素が入る ASP パネル:

<asp:Panel ID="pnlDisplay" runat="server" ScrollBars="Vertical" Width="100%" Height="500px">
    <%-- Dynamically generated list goes inside this table from codebehind --%>
    <asp:Table ID="tblResults" runat="server" Width="98%" CellPadding="10">

    </asp:Table>
</asp:Panel>

最後に、分離コードで作成されるチェックボックスの 1 つの例を示します。

CheckBox isIn = new CheckBox();
isIn.InputAttributes["class"] = "inOut";

繰り返しますが、問題は IE のみです。何か案は?(そして、スクラップ IE は、ここのオフィスで頻繁に使用されているため、オプションではありません)

4

1 に答える 1

0

最終的に、この問題の解決策は、jQuery のチェック ボックスを廃止し、似たような ajaxControlToolKit トグル ボタン エクステンダーを使用することでした。このコントロールは、私が jQuery ソリューションに求めていたのと同じ機能をすべて提供してくれましたが、それでもスクロール可能なパネル内にとどまりました。また、これは asp コントロールであるため、コード ビハインドで動的に作成できます。

CheckBox isIn = new CheckBox();
     isIn.ID = "cbIn" + dtCoverage.Rows[i]["userId"].ToString();
     isIn.Attributes.Add("onClick", "OnClickInOut (this)");

AjaxControlToolkit.ToggleButtonExtender isInExtender = new AjaxControlToolkit.ToggleButtonExtender();
     isInExtender.ID = "tbeIsIn" + dtCoverage.Rows[i]["userId"].ToString();
     isInExtender.ImageHeight = 26;
     isInExtender.ImageWidth = 60;
     isInExtender.UncheckedImageUrl = "~/Images/noBtn.jpg";
     isInExtender.CheckedImageUrl = "~/Images/yesBtn.jpg";
     isInExtender.TargetControlID = "cbIn" + dtCoverage.Rows[i]["userId"].ToString();
于 2014-04-03T13:53:14.820 に答える