Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   input type="range" слушатель события. (https://javascript.ru/forum/dom-window/66883-input-type%3D-range-slushatel-sobytiya.html)

Black_Star 16.01.2017 12:14

Что бы полностью пояснить всякое недопонимание, в том что я хочу, я решил сделать простой пример.
https://jsfiddle.net/BlackStar1991/dby199qk/16/
При изменение ползунка должно ити изменение количества квадратиков.
(собственно получение значения перемененной из функции)

Dilettante_Pro 16.01.2017 12:22

Black_Star,
Цитата:

Сообщение от Black_Star
Мне необходимо что б была возможность работать с динамически меняющееся значение переменной "a"

Таки она меняется. Можно пользоваться.
<!DOCTYPE html>
<html lang="en">
<head>
	<title>Rainebow Balls</title>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
</head>
<body>
<div id="res" ></div>
<canvas id='canvas' width="800" height="200"></canvas>
<input class="corners" type="range" min="1" max="60" step="1" value="48">
<span>show</span>
<script>
var corners = $('.corners');
var num = $('span');
var a = corners.val();
$(function(){
	num.text(a);
	$('.corners').change(function(){
		a = corners.val();
		res.innerText = ("a = " + a);
		num.text(a);
		nov = showResalt + 2;
   })
})
var showResalt = Number (a);   
console.log( showResalt + 'my_range');
//console.log(nov + "  = nov");
</script>
</body>
</html>

Black_Star 16.01.2017 12:35

Спасибо, интересный вышел результат, но он не подходит по моим нуждам. В вашем примере, функция и параметр изменения находятся в одной области видимости. За пределами данной функции "a" вы уже не сможете изменить. Мне же необходим динамически изменяемый параметр "а" за пределами, в другой функции. https://jsfiddle.net/BlackStar1991/dby199qk/16/

Dilettante_Pro 16.01.2017 12:43

Black_Star,
Запуск функции клонирования нужно размещать в обработчике.

Dilettante_Pro 16.01.2017 13:02

<!DOCTYPE html>
<html lang="en">
<head>
	<title>Rainebow Balls</title>
        <style>
.addBlock{
  height: 100px;
  width: 100%;
  border: 1px solid #000;
}

.minBlock{
  float: left;
  width: 20px;
  height: 20px;
  background-color: red;
  border: 1px solid #000;
 display:none;
}
</style>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
</head>
<body>
<input class="corners" type="range" min="1" max="60" step="1" value="48">
	<span>show</span>
    <div class="minBlock"></div>
  <div class="addBlock">
  </div>
<script>
var corners = $('.corners');
var a = corners.val(),
num = $('span');
num.text(a);
var minblock = $(".minBlock");
duplicate(a);

$(function(){
	$('.corners').on('input', function(){
		a = corners.val();
         num.text(a);
         duplicate(a);
   })
})
function duplicate(count) {
         $(".addBlock").html("");
         for(var i = 0; i < count; i++) {
             minblock.clone().appendTo(".addBlock").show();
         }
}
</script>
</body>
</html>

ksa 16.01.2017 13:48

Цитата:

Сообщение от Black_Star
привязать значение этой переменной к другой переменой

Вот тут не понял... :blink:
У нас есть два варианта "связи" значения с именем переменной...
1. Присвоение
2. Ссылка

Dilettante_Pro 16.01.2017 14:02

Black_Star,
Рекомендую также глянуть концовочку этой темы
http://javascript.ru/forum/dom-windo...achejjk-4.html

Black_Star 16.01.2017 19:02

Всем спасибо за помощь. :thanks:
Ещё вопрос. Как сделать слушатель события для этого ползунка?
Что то на подобие вот этого
https://www.sitepoint.com/javascript-custom-events/
Что б значения в теге span() менялись не ПОСЛЕ того как я отпущу ползунок, а по мере прокрутки?

Dilettante_Pro 16.01.2017 19:13

Black_Star,
Цитата:

Сообщение от Black_Star
Что б значения в теге span() менялись не ПОСЛЕ того как я отпущу ползунок, а по мере прокрутки?

Изменил пример пост 15

Black_Star 16.01.2017 22:12

всем ещё раз спасибо. Вот что получилось :p
http://codepen.io/BlackStar1991/pen/JERqjP


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