我们如何加载jquery函数只有一次

时间:2013-04-29 13:02:22

标签: javascript

我只想让我的jQuery函数只运行一次。我正在使用国家,州/城市下降。因此,当用户选择任何国家/地区时,它会显示城市/州。但最初它没有显示任何内容,所以我在document.ready上调用它。但问题是,每次都是第一个乡村城市。那么有什么解决方案吗?或者你可以建议任何其他国家,城市下降。

下拉代码是

function print_country(country_id){
// given the id of the <select> tag as function argument, it inserts <option> tags
var option_str = document.getElementById(country_id);
var x, i=0;
for(x in country_arr){
    option_str.options[i++] = new Option(country_arr[x],country_arr[x]);
}
}

function print_state(state_id, state_index){
var option_str = document.getElementById(state_id);
var x, i=0; state_index++;
var state_arr = s_a[state_index].split("|");
for(x in state_arr){
        option_str.options[i++] = new Option(state_arr[x],state_arr[x]);
}
}

您也可以对其进行修改,以便在页面加载默认情况下显示的第一个国家/地区的引用。感谢

1 个答案:

答案 0 :(得分:0)

你现在应该使用jQuery

function print_country(country_id){
  // given the id of the <select> tag as function argument, it inserts <option> tags
  var countrySel = $("#"+country_id);
  // create a "singleton" by returning if the state exists
  if (countrySel.size() > 1) return;
  $.each(country_arr,function() {
      countrySel.append('<option value="'+$(this)+'">'+$(this)+'</option>');
  });
  // call it with the second option (assuming "Please select")
  // change to ,0 for first option
  print_state("state", 1); 
}

function print_state(state_id, state_index){
  var stateSel = $("#"+state_id);
  var state_arr = s_a[state_index].split("|");
  $.each(state_arr,function() {
    stateSel.append('<option value="'+$(this)+'">'+$(this)+'</option>');
  });
}