2010-08-14 4 views
2

Хороший день.Замена jQuery для коммутатора

Я ищу switch замена в jQuery. В принципе, я понятия не имею, как заменить switch.

Я получил следующее switch, приблизительно в 70 странах. Есть ли способ заменить его на loop?

$("#country").change(function() { 
    switch ($('#country :selected').val()) { 
    case 'pl': 
    $("fieldset#state").hide().load('pl.txt').fadeIn(800); 
    break; 
    } 
}); 

Кроме того, есть ли возможность реализовать загрузку определенного файла автоматически, если есть уже выбранный элемент?

Edit:

Мое описание проблемы не было лучшим. Простите за это. Основная проблема заключается в:

  • У меня есть списки только для некоторых стран, не для всех из них
  • Я использовал switch для страны, чтобы прочитать файл, если не было, я вставлял текстовое поле по умолчанию
  • Мне также необходимо реализовать файл загрузки по умолчанию. Что я имею в виду? Я запрашиваю базу данных для страны, а затем выбираю ее в раскрывающемся списке страны. Как загрузить файл автоматически (если есть)?

С уважением, Том

ответ

5

Вы можете сделать так:

$("#country").change(function() { 
    $("fieldset#state").hide().load($('#country :selected').val() + '.txt').fadeIn(800); 
}); 

Редактировать:
Для списка доступных страны, вы можете поместить их в массив, а затем сделать поиск

$("#country").change(function() { 
    var supportCountries = ['pl',]; //put more here 
    var country = $('#country :selected').val(); 
    if(supportCountries.indexOf(country)) 
     $("fieldset#state").hide().load(country + '.txt').fadeIn(800); 
    else 
     $("fieldset#state").hide().load('default.txt').fadeIn(800); //here is load the default text, change if you has another way. 
}); 

Для более подробной информации, если вы хотите заменить switch, то давайте использовать for/loop найти случай, соответствующий , затем выполните действие для этого случая.

+0

Не нужно снова запускать селектор, так как 'this' относится к'