Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.08.2013, 02:24
Новичок на форуме
Отправить личное сообщение для RuBAN Посмотреть профиль Найти все сообщения от RuBAN
 
Регистрация: 06.08.2013
Сообщений: 4

Получение значения атрибута для параметра JQuery UI Слайдера
Здравствуйте! Решил сделать несложный фильтер для сайта, но повис на мелком: http://jqueryui.com/slider/#rangemax
Есть слайдер, вот его html код: <div data-min="0" data-max="30000" class="f-slider">
Причём он будет в дальнейшем не один, поэтому попытался универсально написать на JQ:
$(function() {
	$('.f-slider').slider({
		range: true,
		animate: true,
		min: $(this).data('min'),
		max: $(this).data('max'),
		values: [ $(this).data('min'), $(this).data('max') ],
		slide: function( event, ui ) {
			$(this).parent('.f-slider-block').parent('.f-value').children('.min-value').val(ui.values[0]);
			$(this).parent('.f-slider-block').parent('.f-value').children('.max-value').val(ui.values[1]);
		}
	});			
	$(this).parent('.f-slider-block').parent('.f-value').children('.max-value').val( $('.f-slider').slider('values', 0) + $('.f-slider').slider('values', 1));
});

Однако при $(this).data('max') почему-то не возвращается значение атрибута.
Элементы с классами min-value и max-value - обыкновенные текстовые поля.
Подскажите, в чём ошибка?
Заранее спасибо!
P.S. при attr тоже самое.
Ответить с цитированием
  #2 (permalink)  
Старый 06.08.2013, 03:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

RuBAN,
используйте each
Ответить с цитированием
  #3 (permalink)  
Старый 06.08.2013, 03:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

RuBAN,
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Range slider</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css">
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
  <script>
          $(function() {
    $('.f-slider').each(function (i, b) {
    var max = $(b).data('max'), min = $(b).data('min'), parent = $(b).parents('.f-value'),
    min_input = $('.min-value', parent),max_input = $('.max-value', parent);
    $(b).slider({
        range: true,
        animate: true,
        min: min,
        max: max,
        values: [ min, max ],
        slide: function( event, ui ) {
            min_input.val(ui.values[0]);
            max_input.val(ui.values[1]);
        }
    });

    min_input.val( min);
    max_input.val( max);
  });

  })

  </script>
</head>

<body>
  <div class="f-value">
    <input type="text" class="min-value"> <input type="text" class="max-value">
    <div class="f-slider-block">
      <div data-min="0" data-max="30000" class="f-slider"></div>
    </div>
  </div>

  <div class="f-value">
    <input type="text" class="min-value"> <input type="text" class="max-value">
    <div class="f-slider-block">
      <div data-min="0" data-max="500" class="f-slider"></div>
    </div>
  </div>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2013, 13:11
Новичок на форуме
Отправить личное сообщение для RuBAN Посмотреть профиль Найти все сообщения от RuBAN
 
Регистрация: 06.08.2013
Сообщений: 4

Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery для загрузки страницы в <div> Dr.Holerik jQuery 12 11.10.2016 17:36
jquery для placeholder работает только для первого input в ie Nailya jQuery 1 13.05.2014 09:57
Получение значения переменной внутри обработчика события jQuery Mbenga Общие вопросы Javascript 2 01.07.2013 10:57
поиск классов внутри тега yozuul jQuery 24 14.06.2013 22:00
jQuery поменять CSS цвет для текста при наведении мышью (.text:hover) JooZ jQuery 16 15.11.2010 19:56