2012-03-27 151 views
0

我有問題,但我解決不了。

我的代碼正在firefox完美工作

我有兩個列表框:第一個包含國家,第二個包含城市。如果你改變國家,第二個列表框中的城市列表。

我jQuery代碼:

$('#country').change(function(){ 

var sec=$('#country').val(); 

    $.post(
      'select.php?do=country', 
      {s:sec}, 
      function(answer){ 
       $('#city').html(answer); 
      } 
    ); 

}); 

當我改變了國傢什麼也沒有發生在谷歌瀏覽器。

謝謝。

回答

4

是否所有這些代碼都包含在$(document).ready()方法中?

Chrome比ffox分析得更快,因此change函數的綁定可能在DOM準備好之前發生。如果不使用DOM就緒功能,則編號爲country的元素可能不會被瀏覽器呈現。

$(function() { 
// or $(document).ready(function() { 
    $('#country').change(function(){ 

    var sec=$('#country').val(); 

    $.post(
      'select.php?do=country', 
      {s:sec}, 
      function(answer){ 
       $('#city').html(answer); 
      } 
    ); 

    }); 

});

+0

我在jsfiddle中試過這個。如果你使用'no wrap(head)',它在FF和chrome中都不起作用。如果你使用'no wrap(body)',它可以在兩個方面工作... http://jsfiddle.net/KpdXL/1/。如果沒有OP的實際代碼進行基準測試並知道正在使用哪種版本的Chrome/FF,很難說。 – mellamokb 2012-03-27 21:49:01

+0

yes是由$(document).ready()包裝的,但在.change之前有許多函數。 ı現在清理他們的作品。 TY。 – bayburt 2012-03-27 21:55:02

+0

@bayburt:你之前在哪裏得到錯誤?您可以使用Chrome中的控制檯('CTRL + SHIFT + J')檢查錯誤。 – mellamokb 2012-03-27 22:03:17

0

除了將代碼封裝在「onload函數」中,您可以將js放在文件的底部,這是爲了頁面性能的原因而提出的,它也正確地解析了腳本。