2012-03-20 46 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