2012-03-20 58 views
0

大家好我在遇到一個奇怪的問題,一個網站和一些jquery點擊事件。 在IE 9的Firefox和鉻這工作正常。但IE 8不會觸發點擊事件。在IE 8和asp.net更新面板中未觸發JQuery .click()事件

這是一個包裝在更新面板中的asp.net webform。 ]

ASPX代碼

<asp:UpdatePanel ID="searchupdatePanel" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <div id="search" class="searchcontainer"> 
      <asp:TextBox ID="tbsearchterm" CssClass="watermark" runat="server" /> 

      <a href="#" class="button big left" id="btnSave">Save</a> 

     </div> 
    </ContentTemplate> 
</asp:UpdatePanel> 

在我的js文件我有以下的這些代碼就像我說的這個工作正常在IE 9,但8包裹的onPageLoad功能

function pageLoad() { 
... 
    //SimpleModal Save Dialog 
    $(function() { 
     $('#btnSave').click(function (e) { 
      var searchtrm = $('#tbsearchterm').val(); 
      if (searchtrm == "Enter Search Term" || $.trim(searchtrm) === "") { 

       $('#alert-modal-content').modal({ overlayClose: false, close: false, containerId: 'alert-container' }); 
       $('<b>Whoops!</b><br/><br/><span>Before you can save your search you need to enter a search term or query.</span>').appendTo('#alertTerm'); 

      } 
      else { 
       $('#txt_ssQueryText').val(searchtrm); 
       $('#save-modal-content').modal({ appendTo: 'form', overlayClose: false, close: false, containerId: 'saveSearch-container' }); 
      } 
     }); 

    }); 
} 

的內降低並且點擊事件從未被觸摸(在調試器中驗證)。我已經看到一些其他的建議使用.on()事件的帖子,但我已經通過沒有運氣的類選擇器測試了這一點。

試過,但它沒有工作(工作的意義的功能從來沒有叫。

$(function() { 
    $('.btntestclass').on('click', 'a', function (e) { 
     var searchtrm = $('#tbsearchterm').val(); 
     if (searchtrm == "Enter Search Term" || $.trim(searchtrm) === "") { 

      $('#alert-modal-content').modal({ overlayClose: false, close: false, containerId: 'alert-container' }); 
      $('<b>Whoops!</b><br/><br/><span>Before you can save your search you need to enter a search term or query.</span>').appendTo('#alertTerm'); 

     } 
     else { 
      $('#txt_ssQueryText').val(searchtrm); 
      $('#save-modal-content').modal({ appendTo: 'form', overlayClose: false, close: false, containerId: 'saveSearch-container' }); 
     } 
    }); 

}); 

任何建議,爲什麼這不是在IE 8?

在此先感謝執行

+0

是否清除緩存並嘗試? – Shyju 2012-03-20 21:52:30

+0

@Shyju是多次按Ctrl + F5以及通過調試器 – rlcrews 2012-03-21 01:19:16

回答

0

您可能嘗試在Internet Explorer開發人員工具中設置jQuery單擊函數。 也許在$(document).ready()之前調用pageLoad()函數。

+0

是的,你是正確的頁面加載首先被調用。在部分帖子後臺的asp.net更新面板上這是必需的。如果我將它包裝在文檔就緒函數中,由於更新面板 – rlcrews 2012-03-21 01:22:33

+0

,事件或其他函數永遠不會被訪問,所以我使用jQuery事件處理程序更新面板,這些事件處理程序在第一次回發後已丟失。 要解決我做過的[這個]問題(http://stackoverflow.com/a/256253/1175355) – 2012-03-21 04:17:44

+0

謝謝Gerson。我看着你的榜樣,不僅關注你的步驟,還關注其他參與者的步驟。我能夠成功地使事件在ie9和更高版本中工作,但在ie8中沒有運氣。 – rlcrews 2012-03-21 15:53:23