2011-05-21 87 views
0

我正在使用一個函數來觸發任何特定的錨點被點擊。
這適用於Firefox 3和Chrome。jquery ajax在Internet Explorer中不觸發

當頁面第一次開始加載時,它們不存在,因爲它們是使用客戶端轉換由XML + XSLT創建的,以防萬一這與相關的一些方式有關。

我也只是把那個警報放在那裏,看看它是否甚至做了什麼......甚至沒有在IE中發出警報。它不在Chrome中工作,但那是因爲我缺少$ document.ready語句[仍然在FF中工作],但我不確定IE中缺少的元素是什麼。我使用IE 8 btw。

 <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#BlogSelectList li a").click(function() { 
       alert('hhi') 
       var str = ($(this).attr("href")).slice(1, 37) 
       $.ajax({ 
        contentType: "application/json; charset=utf-8", 
        url: '../ws/WebServices.asmx/SetActiveBlog', 
        data: '{ActiveBlogID: "' + str + '"}', 
        dataType: 'json', 
        type: "post", 
        success: function (j) { 
          window.location.href = 'dashboard.aspx' 
        } 

       }); 

      }); 
     }) 
    </script> 

回答

1

當文檔第一次加載時,錨點可能不在那裏。您可以使用實時方法快速修復。這會將您的活動應用於您正在選擇的任何內容,即使它稍後添加到DOM中。

$("#BlogSelectList li a").live("click", function() {etc...}); 

此外,如果您使用的是錨,你可能需要設置href屬性爲「#」,這樣它不會觸發導航某處的瀏覽器的默認行爲。

+0

這個修復它謝謝你 我有一個#就可以了,這就是爲什麼我使用切片傳遞給web服務,只是guid sans#。 – Jordan 2011-05-21 06:37:11

0
<script type="text/javascript" src="jquery-1.6.1.min.js"></script> 
    <script type="text/javascript"> 
      $(document).ready(function() { 
       $("#click").click(function() { 
        alert('hhi'); 
        }); 
        }); 

    </script> 
<table> 
<tr><td id='click'>ravi</td></tr> 
</table> 

在IE8中試試這個,告訴我。一旦此代碼由於IE8中的彈出窗口阻止程序而未運行,則返回 。 刪除彈出窗口攔截器