2013-10-25 44 views
0

我們的網站正在將它的jquery升級到1.10.2,因爲我們之前使用過colorbox,所以它提出了一些挑戰。首先,我看到的問題是,當用戶點擊鏈接打開colorbox打算加載一個部門,它第一次正常工作,但第二次colorbox只顯示一個白頁。我一直在調試,但是當它運行第一次和第二次運行時,我看不到任何設置之間的差異。如果頁面重新加載,窗口將首次正常打開,然後再次失敗。ColorBox中的分區沒有用JS加載兩次1.10.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()行以及其他一些小事。有人能給我一些見解,說明我能如何解決這個問題以找到問題嗎?

有一種可能的理論認爲,colorbox在第一次運行時會從頁面中除去除法,所以當用戶第二次去除它時,它不再存在。它是否在記憶中某處,可以從那裏檢索?

回答

0

在一些幫助下,答案已經被絆倒,它與ColorBox腳本內部的觸發器函數有關。在舊的ColorBox腳本中,event.trigger調用已被棄用,因此必須更改腳本以專門調用需要觸發器的項目。這恰好是其中之一,所以爲了解決這個問題,我們在colorbox.js文件中添加了以下行到觸發函數:

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