一个服务于两个的函数选择JQuery

时间:2014-02-19 11:41:33

标签: jquery

我在HTML中有两个选择。

<select id="country">
  <option value="Sasha">--Wybierz--</option>  
  <option value="Egipt">Egipt</option>
  <option value="Afganistan">Afganistan</option>
  <option value="Serbia">Serbia</option>
</select>

<select id="country-bd">
  <option value="Sasha">--Wybierz--</option>  
  <option value="Egipt">Egipt</option>
  <option value="Polska">Polska</option>
  <option value="Serbia">Serbia</option>
</select>

var high_ryzyko_kraj = ['Polska', 'Afganistan', 'Ukraina'];

$(function(){
 $('#country').change(function(){
    caunt = $(this).val();
    scoring = 0;
        var arr = $.inArray(caunt, high_ryzyko_kraj)
        if (arr===1){  
             scoring =+ 4 ;
             clback();
        }
   });

 function clback(){
   result = scoring
   console.log(result);
   }
});    

当选择high_ryzyko_kraj数组中的国家/地区时,我希望calback函数中的result变量增加4。

所以第一次选择的Afganistan和第二次选择的Polska会给我总共8次。我需要稍后回调所以我就把它留在那里。

有没有办法修改我的第一个功能,它同时为#country#country-bd提供服务?

链接到JsFiddle:http://jsfiddle.net/szymondzumak/TCx6L/1/

2 个答案:

答案 0 :(得分:1)

试试这个:

$('#country, #country-bd').change(function()...

答案 1 :(得分:1)

  1. 添加了新选择器。
  2. 在更改回调之外声明评分变量。
  3. 当数组中的值不匹配时,
  4. arr将为-1。
  5. 试试这个,

    var high_ryzyko_kraj = ['Polska', 'Afganistan', 'Ukraina'];
    
    $(function(){
        var scoring = 0;
        $('#country, #country-bd').change(function(){
            caunt = $(this).val();
                var arr = $.inArray(caunt, high_ryzyko_kraj)
                if (arr>-1){  
                     scoring += 4 ;
                     clback();
                }
           });
    
        function clback(){
        result = scoring
            console.log(result);
        }
    });    
    

    <强> DEMO