2012-03-27 5 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보다 빠르게 구문 분석하므로 DOM 준비가 완료되기 전에 change 함수의 바인딩이 발생할 수 있습니다. DOM 준비 함수를 사용하지 않으면 id가 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에서 이것을 시도했다. '랩 (머리) 없음 '을 사용하면 FF 나 크롬에서 작동하지 않습니다. '랩 (본문) 없음 '을 사용하면 둘 다 작동합니다 ... http://jsfiddle.net/KpdXL/1/. OP의 실제 코드를 벤치마킹하지 않고 Chrome/FF의 버전이 사용되고 있음을 알지 못한다면 말하기가 어렵습니다. – mellamokb

+0

예, $ (document) .ready()로 감싸지 만 .change 전에는 많은 함수가 있습니다. ı 이제는 그것들을 청소했다. 네. – bayburt

+0

@bayburt : 이전에 오류가 발생 했습니까? Chrome에서 Console을 사용하여 오류를 확인할 수 있습니다 ('CTRL + SHIFT + J'). – mellamokb

0

"onload 함수"에 코드를 래핑하는 것 외에도 js를 파일의 맨 아래에 배치 할 수 있습니다. 이는 페이지 수행상의 이유로 권장되며 스크립트를 올바르게 구문 분석합니다.

관련 문제