@jaster351

Почему не срабатывает событие onchange, step?

Здравствуйте, не могу понять по чему не отрабатывает до конца событие onchange
var pricePerThs = new Array();

pricePerThs["BTC"] = 0.05641;
pricePerThs["USD"] = 340;
pricePerThs["EUR"] = 292;
var minPower = 100,
    maxPower = 10000000,
	coficent_hardcore =  "20",
	maintenanceUSD = "0.00031";;
    maintenanceCUR = "0.031";
	//maintenanceBTC = 0.00000856;
	  currencyRateUSD = "8267.3513";

	currencyPower = "1364422081125";
   
	//calcModel.rate это Изменить цену
					//calcModel.difficulty Изменить сложность*
					//calcModel.power Мощность
function abc(n) {
	return (n + "").split("").reverse().join("").replace(/(\d{3})/g, "$1 ").split("").reverse().join("").replace(/^ /, "");
}



var calcModel = {
    power: undefined,
    difficulty: undefined,
    rate: undefined
};

function updateModel() {
    // power
    var value = parseInt( $("[name='bc-power']").val() );
    value = isNaN(value) ? minPower : value;
    if (value < minPower) {
        value = minPower;
    }
    else {
        value = parseInt(value / minPower) * minPower;
    }
    value = Math.max(Math.min(maxPower, value), minPower);
    calcModel.power = value;
    // difficulty
    value = parseFloat( $("[name='bc-difficulty']").val() );
    value = isNaN(value) ? 10 : value;
    value = Math.max(Math.min(500, value), -99);
    calcModel.difficulty = value;
    // rate
    value = parseFloat( $("[name='bc-rate']").val() );
    value = isNaN(value) ? 10 : value;
    value = Math.max(Math.min(1000, value), -99.99);
    calcModel.rate = value;
}
updateModel();

function updateInfo() {
    $('.j_bc-cost-label').each(function(){
        var curr = $(this).attr('currency'),
            cost = pricePerThs[curr];
        $(this).toggleClass('hidden', !cost).text(curr + ' ' +  formatCurrency(pricePerThs[curr] * calcModel.power / 1000, curr));
    });
     $('.USD').text("26.00" * (calcModel.power / 100).toFixed(2) + ' USD');
     $('.EUR').text(("22" * (calcModel.power / 100)).toFixed(2) + ' EUR');
     $('.BTC').text(("0.003145" * (calcModel.power / 100 )).toFixed(6)  + ' BTC');
    $('.j_maintenance').text(formatCurrency(maintenanceUSD * calcModel.power, 'USD', 4));

}
updateInfo();

$("[name='bc-power']").on('mouseover', function(){
    updateModel();
    updateInfo();  
    $(this).val(calcModel.power + ' GH/s');
});
$("[name='bc-difficulty']").on('mouseover', function(){
    updateModel();
    var prefix = calcModel.difficulty > 0 ? '+' : '';
    $(this).val(prefix + calcModel.difficulty.toFixed(2) + '%');
});
$("[name='bc-rate']").on('mouseover', function(){
    updateModel();
    var prefix = calcModel.rate > 0 ? '+' : '';
    $(this).val(prefix + calcModel.rate.toFixed(2) + '%');
});

$('.bc-input-step').on('click', function(){
    var step = parseInt($(this).attr('step')) || 0,
        $input = $(this).closest('.bc-input-wrapper').find('.bc-input');
    updateModel();
    updateInfo(); 
	
    $input.val(parseFloat($input.val()) + step ).change();
	
});


<div class="col-md-2 col-md-offset-1">
                  <label>Мощность</label>
                  <div class="bc-input-wrapper">
                    <input name="bc-power" class="bc-input power" value="100 GH/s"/>
                    <div class="bc-input-steps">
                      <div class="bc-input-step bc-input-step-up" step="100"></div>
                      <div class="bc-input-step bc-input-step-down" step="-100"></div>
                    </div>                  
                  </div>

суть кода простая, при любых изменениях name="bc-power" должно автоматический дописываться "GH/s", также и при нажатии кнопки step="100"
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Я собрал пример в песочнице за вас: https://jsfiddle.net/f61zm7mz/

ReferenceError: formatCurrency is not defined
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы