2011-03-03 52 views
2

谷歌瀏覽器9.0.597.107(正式版本75357) 的WebKit 534.13 V8 2.5.9.15 用戶代理的Mozilla/5.0(窗口; U; Windows NT的6.1; EN-US)爲AppleWebKit/534.13(KHTML,像Gecko)Chrome/9.0.597.107 Safari/534.13 JQuery:1.5.0谷歌瀏覽器 - JQuery的附加選項下拉

基本上我的問題如下。我正在動態更新Chrome瀏覽器中的下拉列表(html選擇)列表。該HTML是相對簡單的,這是Jquery的的精簡線正在使用:

($("<option />").val("test1").text("test2")).appendTo($("select[id*='SearchInput_Origin']")); 

$("select[id*='SearchInput_Origin']").append($("<option />").val("test1").text("test2")); 

**這是目前的$(document)中。就緒

基本上他們只是添加一個選項,以一個下拉選項...足夠直接。 完美適用於Firefox和IE瀏覽器,但是在Google Chrome中,下拉列表不會顯示該選項,除非我通過關注某些內容或滾動等方式與頁面交互。看不到它的原因。

我把警報在被填充的下拉菜單的功能和代碼得到執行,但Chrome不更新......很奇怪

有沒有人碰到這個纔來的呢? 任何想法可能導致它?

由於提前, enigmab17

[編輯#1]更多信息 一直在研究它,不能找出它在所有。即使我在頁面上觸發事件,它仍然不會執行任何操作,直到我物理地點擊或移動某個東西。

將解決方案中的所有代碼都剝離到自己的html頁面上,並且Chrome工作正常,因此必須與頁面呈現有關。基本上這個頁面是通過AJAX渲染的,有很多頁面設置都通過ajax被加載到主頁面。 非常奇怪。 基本上默認選擇列表中顯示爲:

<select id="Select1" name="select1"> 
    <option value="-1">Default...</option> 
</select> 

而且它上面的渲染。刪除所有選項並將其與其他人一起填充的代碼位於doc.load中。如果我在chrome中檢查元素檢查器,它將顯示已更新的選項,但chrome不會將這些更改呈現在屏幕上。

更奇怪的是,在下拉菜單下面有一個標準的超鏈接,如果我將鼠標懸停在它上面,更新後的選項會通過chrome呈現!

回答

0

我檢查這個使用下面的代碼,它爲我工作得很好

<html> 
    <head> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.js"></script> 
    </head> 
    <body> 
     <select></select> 
    </body> 
    <script> 
     $(document).ready(function(){ 
      $("<option />").val("test1").text("test2").appendTo($("select")); 
     }); 
    </script> 
</html> 

您能夠重新使用此代碼的問題?

你可以找到一個jsFiddle here

更新:

試試這個樣本

main.html中

<html> 
    <head> 
     <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/themes/smoothness/jquery-ui.css" /> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.js"></script> 
     <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/jquery-ui.js"></script> 
    </head> 
    <body> 
     <span class="button">Click to laod</span> 
     <div class="container"></div> 
    </body> 
    <script> 
     $(document).ready(function(){ 
      $("span.button").button().click(function(){ 
       $("div.container").load("ajax.html") 
      }); 
     }); 
    </script> 
</html> 

ajax.html

<select></select> 
<script> 
    $(document).ready(function(){ 
     $("<option />").val("test1").text("test2").appendTo($("select")); 
    }); 
</script> 

是否模擬這種情況下,你的?

+0

是啊,它工作正常,沒有我自己,必須是與我加載網頁的自我的方式是一樣的。 – Shane

+0

你能發佈一些與你的頁面相關的更多信息嗎? –

+0

到目前爲止還不存在於網絡上。基本上所有頁面都是由.NET動態創建的。主頁面可以將其稱爲「Main.aspx」,然後根據通過書籤ID傳入的標誌來加載所有單獨的子頁面,例如, Main.aspx#Info將通過AJAX將Info頁面加載到主頁面。所以我只能假設這是在Chrome中引起一些問題......在IE/Firefox等工作完全正常。 – Shane

0

發現問題。

基本上,下拉/選項是使用XSLT轉換填充的較大表單的一部分。有2個輸入單選按鈕被放置在上面的頁面上,通過XSLT樣式表模板,所以模板正在生成輸入,並且由於某種奇怪的原因,谷歌瀏覽器不喜歡這樣。一旦我將它轉換成看起來有些雜亂的選擇標籤而不是模板,它就可以正常工作。有史以來最奇怪的問題! :d

@Arun P約翰尼拉 感謝您的幫助:)