在此示例中,我有两个操作:


当您添加用户数量时-它将由输入中的价格加上总金额自动计算得出
如果您已经添加了用户数量>已计算总金额>如果单击EUR-输入总金额,则总金额将转换为欧元。


因此,一切正常-但我不喜欢“ usesQuantity”具有全局范围!
任何想法如何使其本地化并保存工作版本
http://jsfiddle.net/gb2447jd/5/

尝试过类似的东西:

$('#user-quantity').keyup(function(){
    var userQuantity = parseInt($(this).val());
    if( userQuantity >=1 && userQuantity <=200){
      valid(userQuantity);
    } else {
      $('#total-sum').val("error");
    }
  });


  $('#usd').on('click', function(){
    $('#eur').removeClass('greenChacked');
    $(this).addClass('greenChacked');
    valid(userQuantity);
  });
  $('#eur').on('click', function(){
    $('#usd').removeClass('greenChacked');
    $(this).addClass('greenChacked');
    valid(userQuantity);
  });
  $('#usd').trigger('click');

  function valid(userQuantity){
    if( $('#usd').hasClass('greenChacked') ){
      var usdCurr = userQuantity * 10 + 'doll';
      $('#total-sum').val(usdCurr);
    }
    if( $('#eur').hasClass('greenChacked') ){
      var eurCurr = userQuantity * 5 + 'eur';
      $('#total-sum').val(eurCurr);
    }
  }

最佳答案

您可以将代码包装在immediately invoked function

(function () {
    var userQuantity;

    $(document).ready(function () {
        //rest of your code
    };
}());


更多信息here

09-19 19:18