Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получить содержимое элемента, которое меняется (https://javascript.ru/forum/misc/58437-poluchit-soderzhimoe-ehlementa-kotoroe-menyaetsya.html)

k_DizeL 21.09.2015 21:37

Получить содержимое элемента, которое меняется
 
В эти три поля выводятся с помощью JQ, значения чисел, которые меняются.
<span id="amount"></span>
<span id="amount1"></span>
<span id="amount2"></span>

Мне необходимо взять эти числа, сложить и вывести в блок с id summa
<div id="summa"></div>

При любой попытке выводится NaN
Пробывал так
$("#itogo").html(parseInt(amount2) + parseInt(amount1) +parseInt(amount));

k_DizeL 21.09.2015 22:06

C NaN разобрался. Но так как значения меняются в блоках с id="amount", то как сделать автоматический подсчет сразу, как только значение изменится в блоках с id="amount"?

k_DizeL 21.09.2015 23:22

Как я уже понял, мне необходимо подобрать обработчик функции. change не работает.
$(document).change(function(){
  	  var itogo = document.getElementById("itogo");
      var amount2 = $('#amount2').html();
      var amount1 = $('#amount1').html();
      var amount = $('#amount').html();
      var summa = 0;
      var summa = parseInt(amount2)+parseInt(amount)+parseInt(amount1);
      $("#itogo").html(summa);
    });

Вывожу
<div id="itogo"></div>

k_DizeL 21.09.2015 23:34

Выбрал обработчик mousemove, но по моему это дикость.

laimas 21.09.2015 23:44

Сперва ответьте на вопрос - что изменяет содержимое этих элементов?

k_DizeL 21.09.2015 23:59

Цитата:

Сообщение от laimas (Сообщение 389458)
Сперва ответьте на вопрос - что изменяет содержимое этих элементов?

Использую http://jquery.page2page.ru/index.php5/Ползунок_UI Односторонний диапазон.
Таких 3
$("#slider-range").slider({
      range: "min",
      min: 0,
      max: 20,
      value: 3,
      slide: function( event, ui ) {
        $( "#amount" ).html(ui.value );
      }
    });

laimas 22.09.2015 00:38

Вот здесь slide: function( event, ui ) и занимайтесь вычислением.

k_DizeL 22.09.2015 00:42

Цитата:

Сообщение от laimas (Сообщение 389463)
Вот здесь slide: function( event, ui ) и занимайтесь вычислением.

Дело в том, что полный код таков:
$("#slider-range").slider({
      range: "min",
      min: 0,
      max: 20,
      value: 3,
      slide: function( event, ui ) {
        $( "#amount" ).html(ui.value );
      }
    });
    $( "#amount" ).html($( "#slider-range" ).slider( "value" ));
    
        $("#slider-range1").slider({
      range: "min",
      min: 0,
      max: 60,
      value: 15,
      slide: function( event, ui ) {
        $( "#amount1" ).html(ui.value );
      }
    });
    $( "#amount1" ).html($( "#slider-range1" ).slider( "value" ));
    
        $("#slider-range2").slider({
      range: "min",
      min: 0,
      max: 10,
      value: 1,
      slide: function( event, ui ) {
        $( "#amount2" ).html(ui.value );
      }
    });
    $( "#amount2" ).html($("#slider-range2" ).slider( "value" ));

laimas 22.09.2015 00:48

Да хоть какой, делайте вызов одной и той же функции в трех местах - вычислять нужно все равно по событию, хотя лучше все эти три бока объединить в один (проход в цикле), задав параметры инициализации в элементах.


Часовой пояс GMT +3, время: 23:37.