Javascript.RU

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

ползунок type="range и добавление значение в
Доброго времени суток! столкнулся с проблемой, имеются к примеру продукция с категориями, по ней идет фильтрация по категориям без перезагрузки страницы! хочу добавить ползунок для фильтрации по году... скрипт фильтрации выполняется
<li class="filter-item" data-filter=".2015">2015</li>


проблема в следующем, не могу поменять значение
Код:
data-filter=".2015"
если в строчке скрипта
Код:
document.querySelector("#volume").value = vol;
делаю замену value на data-filter, ничего не меняется!


<input type=range min=2005 max=2015 value=2015 id=fader step=1 onchange="outputUpdate(value)">
<li id=volume class="filter-item" data-filter=".2015">2015</li>
<script> function outputUpdate(vol) {
document.querySelector("#volume").value = vol;
}
</script>';


Увы с программированием не заладилось, надеюсь на вашу помощь! Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 05.07.2015, 14:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

wildil,
document.querySelector(".filter-item").dataset.filter= "."+vol;
document.querySelector(".filter-item").innerHTML = vol;

https://learn.javascript.ru/attribut...трибуты
Ответить с цитированием
  #3 (permalink)  
Старый 05.07.2015, 14:28
Новичок на форуме
Отправить личное сообщение для wildil Посмотреть профиль Найти все сообщения от wildil
 
Регистрация: 05.07.2015
Сообщений: 5

Благодарю! Знания сила!
Ответить с цитированием
  #4 (permalink)  
Старый 05.07.2015, 18:50
Новичок на форуме
Отправить личное сообщение для wildil Посмотреть профиль Найти все сообщения от wildil
 
Регистрация: 05.07.2015
Сообщений: 5

возникает вопрос о возможности фильтра выбора с 2ух сторон, мол с 2006 по 2010 год...
я так понял нужно использовать jquery Ui slider.
Правда в голове не укладывается, как сделать расчет
<li id=volume class="filter-item" data-filter="">2006-2010</li>

чтобы в data-filter="" поместить .2006, .2006, .2008, .2009, .2010

Если сможете помочь соображениями на этот счет, буду благодарен!
Ответить с цитированием
  #5 (permalink)  
Старый 05.07.2015, 18:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

wildil,
выбор за вами можно один jquery Ui slider, можно два type=range;
Ответить с цитированием
  #6 (permalink)  
Старый 05.07.2015, 19:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

type range выбор диапазона лет
wildil,
<!DOCTYPE HTML>

<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
</head>

<body>
    <p>.2015</p>
    <input type=range min=2005 max=2015 value=2015 id=fader step=1 onchange="outputUpdate()">
    <input type=range min=2005 max=2015 value=2015 id=fader step=1 onchange="outputUpdate()">
    <li id=volume class="filter-item" data-filter=".2015">2015</li>
    <script>
        var p = document.querySelector("p")

        function outputUpdate(vol) {
            var str = [],
                inp = document.querySelectorAll("[type='range']");
            min = inp[0].value, max = inp[1].value;
            if (min > max) {
                inp[1].value = min;
                max = min
            };
            for (var i = min; i <= max; i++) {
                str.push(i)
            }
            p.innerHTML = "." + str.join(",.");
            document.querySelector(".filter-item").dataset.filter = "." + str.join(",.");
            document.querySelector(".filter-item").innerHTML = min + ((min == max) ? "" : (" - " + max));

        }
    </script>



</body>

</html>

Последний раз редактировалось рони, 05.07.2015 в 19:25.
Ответить с цитированием
  #7 (permalink)  
Старый 05.07.2015, 19:37
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Всё таки с ... по удобнее двумя выпадающим меню (select)
Посколь скриптом мон генерить(обрезать) все года младше или равного году 'с'
Ответить с цитированием
  #8 (permalink)  
Старый 05.07.2015, 19:44
Новичок на форуме
Отправить личное сообщение для wildil Посмотреть профиль Найти все сообщения от wildil
 
Регистрация: 05.07.2015
Сообщений: 5

хочется все же фильтр, интуитивно и современно)
http://jqueryui.com/slider/#range
разбираюсь сейчас этим вариантом!
Цитата:
рони
респектую! правда вариант с 2умя палзунками не удобен получается... если поможете с jquery ui с меня шоколадка!)
Ответить с цитированием
  #9 (permalink)  
Старый 05.07.2015, 19:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

wildil,
по вашей ссылке готовый код -- как получить дата -- возьмите из моего кода.
Ответить с цитированием
  #10 (permalink)  
Старый 05.07.2015, 20:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

jqueryui slider диапазон лет
wildil,
<!doctype html>

<html lang="en">

<head>

  <meta charset="utf-8">

  <title>jQuery UI Slider - Range slider</title>

  <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <style type="text/css">
  #slider-range{
    margin:20px;
    width:500px;
    height:5px;
  }

  .ui-slider-handle{
    border-radius:50%;
    position:relative;
    font-size:14px;
    display:block;
  }

  .ui-slider-horizontal .ui-slider-handle{
    top:0.5em;
    background:transparent;
    border-radius:0%;
    width:0;
    height:0;
    border-top:none;
    text-decoration:none;
    border-left:7px solid transparent;
    border-right:7px solid transparent;
    border-bottom:14px solid red;
  }

  .ui-slider-handle:focus{
    outline:0;

  }

  .ui-slider-horizontal .ui-slider-handle:last-of-type{
    background:transparent;
    border-bottom:none;
    border-top:14px solid red;
    top:-1.2em;
  }

  </style>
  <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
  <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <script>
$(function() {
    $("#slider-range").slider({
        range: true,
        min: 2005,
        max: 2015,
        values: [2005, 2015],
        slide: function(event, ui) {
            var min = ui.values[0],
                max = ui.values[1],
                str = [];
            for (var i = min; i <= max; i++) str.push(i);
            str = "." + str.join(",.");
            $("#volume").html(min + (min == max ? "" : " - " + max)).data({
                "filter": str
            });
            $("p").html(str) //для контроля
        }
    });
    $("#volume").html($("#slider-range").slider("values", 0) + " - " + $("#slider-range").slider("values", 1))
});

  </script>

</head>

<body>
<p>.2015</p>
<li id=volume class="filter-item" data-filter=".2015">2015</li>
<div id="slider-range"></div>
</body>

</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 08:42
Не возможно выбрать другое значение BLP Events/DOM/Window 7 22.10.2012 17:22
В contains() не подставляется значение переменной Heger jQuery 2 11.12.2011 20:26
Значение переменной salex009 jQuery 1 05.12.2011 16:55
Динамическое добавление выпадающего списка В IE stepennwolf Internet Explorer 3 04.11.2011 17:36