0

私たちのサイトは jquery を 1.10.2 にアップグレードしています。以前は colorbox を使用していたため、これにはいくつかの課題があります。主に、私が見ている問題は、ユーザーが部門をロードする目的でリンクをクリックしてカラーボックスを開くと、最初は正常に機能しますが、2 回目のカラーボックスには白いページしか表示されないことです。デバッグを行っていますが、初回実行時と 2 回目実行時の設定の違いがわかりません。ページがリロードされると、ウィンドウは最初は正常に開き、2 回目は失敗します。

カラーボックス ウィンドウを呼び出すボタンは次のとおりです。

   $('#btn_Detail').click(function (e) {
       $('#div_Detail input:text').val('');
       $('#div_Detail input:radio:checked').removeAttr('checked');
       $('#div_Detail select').val('');
       $('#div_Detail textarea').val('');

       if ($('#hid_ID').val() != '') {
             $.colorbox({ href: '#div_Detail', width: '650px', height: '300px', inline: true });
       }
   }

そして、ここにそれが開いている部門があります:

   <div id="div_Detail">
    <div>
    <ul>
        <li>
            <label>Type<span class="req">*</span></label>
            <asp:DropDownList ID="ddl_Detail_Type" runat="server" />
        </li>
        <li>
            <label>ID<span class="req">*</span><em>(Make,Model,Serial #, Vin #,Building #)</em></label>
            <asp:TextBox ID="txt_Detail_Id" runat="server" style="overflow:visible;" />
        </li>
        <li>
            <label>Description:<span class="req">*</span></label>
            <asp:TextBox TextMode="MultiLine" Rows="2" ID="txt_Detail_Desc" Width="300px" runat="server" />
        </li>
        <li>
            <label>Damage:<span class="req">*</span></label>
            <asp:DropDownList ID="ddlDamage" runat="server"></asp:DropDownList>
        </li>
        <li>
            <label>Owning Property</label>
            <input type="text" id="txt_OwnMaterial" name="txt_OwnMaterial" style="overflow:visible;" />
            <a id="a_OwnMaterial" href="#"><img alt="" src="/images/TinyButton.gif" /></a>
            <input type="hidden" id="hid_ActOwnMaterialID" name="txt_ActOwnMaterial" />
        </li>
        <li>
            <label>Owned By<span class="req">*</span></label>
            <asp:DropDownList ID="ddl_Detail_OwnBy" runat="server" />
        </li>
    </ul>
    <asp:Button ID="btn_AddUpdate" runat="server" CssClass="yes_btn cancel" Text="Add"  />
    </div>

jquery 1.10.2 に準拠するために、カラーボックス スクリプト自体にいくつかの追加調整が行われました。具体的には、スクリプト内の $.event.trigger() 行をいくつかのマイナーな変更とともに変更します。これをトラブルシューティングして問題を見つける方法について、誰かが私に洞察を与えることができますか?

カラーボックスが最初に実行されたときにページから分割を削除しているため、ユーザーが2回目にそれを取得しようとすると存在しなくなるという可能性のある理論があります。それはどこかのメモリにありますか、そこから取得できますか?

4

1 に答える 1

0

いくつかの助けを借りて、答えはつまずきました.ColorBoxスクリプト内のトリガー関数に関係しています. 古い ColorBox スクリプトでは、event.trigger 呼び出しが廃止されたため、スクリプトを変更して、トリガーが必要な項目を具体的に呼び出す必要がありました。これはたまたまその 1 つであるため、この問題を修正するために、colorbox.js ファイルのトリガー関数に次の行を追加しました。

$('[id*=cbox]', $div).add($div).trigger(event);

于 2013-10-28T18:50:45.137 に答える