Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 13.06.2015, 08:10
Аватар для Ramzes94
Аспирант
Отправить личное сообщение для Ramzes94 Посмотреть профиль Найти все сообщения от Ramzes94
 
Регистрация: 09.06.2015
Сообщений: 62

Сообщение от рони Посмотреть сообщение
Ramzes94,
глюк какой-то есть, data-val=перезаписывается
Рони помнишь ты говорил что глюк есть.
Этот глюк не как не исправить?
Просто в предыдущем вроде скрипте все корректно работает без глюков
Ответить с цитированием
  #32 (permalink)  
Старый 13.06.2015, 08:14
Аватар для Ramzes94
Аспирант
Отправить личное сообщение для Ramzes94 Посмотреть профиль Найти все сообщения от Ramzes94
 
Регистрация: 09.06.2015
Сообщений: 62

То есть нашел косяк в чем.
Когда я ставлю значение больше все работает корректно.
Когда ставлю значение меньше не работает
jQuery(document).ready(function(){
var min_max = [990,70000]
/* слайдер цен */
jQuery("#budget").slider({
	min: min_max[0],
	max: min_max[1],
	values: min_max,
	range: true,
	change: function(event, ui) {
		jQuery("input#minCost").val(ui.values[0]);
		jQuery("input#maxCost").val(ui.values[1]);
    },
    slide: function(event, ui){
	    jQuery("input#minCost").val(ui.values[0]);
		jQuery("input#maxCost").val(ui.values[1]);
    }
});
$("#budget").slider( "option", "values", min_max );
jQuery("input#minCost").change(function(){
	var value1=+jQuery("input#minCost").val()||min_max[0];
	var value2=+jQuery("input#maxCost").val()||min_max[1];
    if(value1 > value2){value1 = value2};
    if(value1 < min_max[0]){value1 = min_max[0]};
    jQuery("input#minCost").val(value1);
	jQuery("#budget").slider("values",0,value1);
});
jQuery("input#maxCost").change(function(){
	var value1=+jQuery("input#minCost").val()||min_max[0];
	var value2=+jQuery("input#maxCost").val()||min_max[1];
	if (value2 > min_max[1]) { value2 = min_max[1]};
	if(value1 > value2){value2 = value1;}
    jQuery("input#maxCost").val(value2);
	jQuery("#budget").slider("values",1,value2);
});
jQuery(".option").click(function() {
  var val = jQuery(this).data("val");
  min_max = val;
 jQuery("#budget").slider("option", {"min":val[0],"max":val[1],"values" : [val[0],val[1]]})

})
});
Ответить с цитированием
  #33 (permalink)  
Старый 13.06.2015, 08:20
Аватар для Ramzes94
Аспирант
Отправить личное сообщение для Ramzes94 Посмотреть профиль Найти все сообщения от Ramzes94
 
Регистрация: 09.06.2015
Сообщений: 62

Все нашел косяк надо было просто в строке 22, 23 и 30, 32 вместо = равно поставить знак < меньше)))
Ответить с цитированием
  #34 (permalink)  
Старый 13.06.2015, 09:07
Аватар для Ramzes94
Аспирант
Отправить личное сообщение для Ramzes94 Посмотреть профиль Найти все сообщения от Ramzes94
 
Регистрация: 09.06.2015
Сообщений: 62

jQuery(document).ready(function(){
var min_max = [+jQuery("[name='minbudget']").val(),+jQuery("[name='maxbudget']").val()]
/* слайдер цен */
jQuery("#budget").slider({
	min: min_max[0],
	max: min_max[1],
	values: min_max,
	range: true,
	change: function(event, ui) {
		jQuery("input#minCost").val(ui.values[0]);
		jQuery("input#maxCost").val(ui.values[1]);
    },
    slide: function(event, ui){
	    jQuery("input#minCost").val(ui.values[0]);
		jQuery("input#maxCost").val(ui.values[1]);
    }
});
$("#budget").slider( "option", "values", min_max );
jQuery("input#minCost").change(function(){
		var value1=+jQuery("input#minCost").val()||min_max[0];
		var value2=+jQuery("input#maxCost").val()||min_max[1];
		if(parseInt(value1) > parseInt(value2)){
		value1 = value2;
		$("input#minCost").val(value1);
	}
		$("#budget").slider("values",0,value1);	
});
jQuery("input#maxCost").change(function(){
		var value1=+jQuery("input#minCost").val()||min_max[0];
		var value2=+jQuery("input#maxCost").val()||min_max[1];
		if(parseInt(value1) > parseInt(value2)){
		value2 = value1;
		$("input#maxCost").val(value2);
	}
		$("#budget").slider("values",1,value2);
});	
jQuery(".option").click(function() {
		var val = jQuery(this).data("val");
		min_max = val;
		jQuery("#budget").slider("option", {"min":val[0],"max":val[1],"values" : [val[0],val[1]]})

	})
});


Рони так то корректно все сделал в коде?
Все вроде работает корректно)))
Ответить с цитированием
  #35 (permalink)  
Старый 13.06.2015, 10:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,081

Ramzes94,
я пас ....
я дал вам рабочий код, но вам нужен код с глюками ...
на последок
Сообщение от Ramzes94
parseInt
нафига??? число превращать в число
Ответить с цитированием
  #36 (permalink)  
Старый 13.06.2015, 10:44
Аватар для Ramzes94
Аспирант
Отправить личное сообщение для Ramzes94 Посмотреть профиль Найти все сообщения от Ramzes94
 
Регистрация: 09.06.2015
Сообщений: 62

Рони суть в том что код который вы мне дали в нем каркас и глюки есть.
То есть при вводе числа меньше в <ipnut> min число сбрасывается.
А в максимальной на оборот, при вводе числа больше в <ipnut> max число сбрасывается.

Проверьте сами.


Сообщение от рони Посмотреть сообщение
Ramzes94,
<!doctype html>

<html lang="en">

<head>

  <meta charset="utf-8">
  <title>slider demo</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/le-frog/jquery-ui.css">
  <style>
  #slider{
    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;
  }

  #slider:focus{
    outline:0;
    border:0;
  }

  .ui-slider-horizontal .ui-slider-handle:last-of-type{
    background:transparent;
    border-bottom:none;
    border-top:14px solid red;
    top:-1.2em;
  }
  .option{
    cursor: pointer;
     border-radius: 3px;
     border: 2px solid rgb(0, 0, 255);
     margin: 5px;
     width: 120px;
  }

  </style>
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

</head>

<body>
<input type="hidden" name="minCostCat" value="990">
<input type="hidden" name="maxCostCat" value="70000">

<div class="box">

          <div class="box-heading">Диапазон цен</div>
		<form class="fromtofilter"  action="#" method="GET">
			<div class="formCost">
				<label for="minCost">от</label><input type="text" id="minCost" />
				<label for="maxCost">до</label><input type="text" id="maxCost" />
			</div>
			<div class="sliderCont">
					<div id="slider"></div>
			</div>
            <div class="option" data-val='[1200,5000]'><span class="val" >Текст1 1200,5000</span></div>
            <div class="option" data-val='[3000,80000]'><span class="val" >Текст2 3000,80000</span></div>
            <div class="option" data-val='[4000,95000]'><span class="val" >Текст3 4000,95000</span></div>
		</form>
		</div>

<script>
 jQuery(document).ready(function(){

 var min_max = [+jQuery("[name='minCostCat']").val(),+jQuery("[name='maxCostCat']").val()]

/* слайдер цен */

jQuery("#slider").slider({
	min: min_max[0],
	max: min_max[1],
	values: min_max,
	range: true,

	change: function(event, ui) {
		jQuery("input#minCost").val(ui.values[0]);
		jQuery("input#maxCost").val(ui.values[1]);
    },
    slide: function(event, ui){
	    jQuery("input#minCost").val(ui.values[0]);
		jQuery("input#maxCost").val(ui.values[1]);

    }
});

$("#slider").slider( "option", "values", min_max );

jQuery("input#minCost").change(function(){
	var value1=+jQuery("input#minCost").val()||min_max[0];
	var value2=+jQuery("input#maxCost").val()||min_max[1];
    if(value1 > value2){value1 = value2};
    if(value1 < min_max[0]){value1 = min_max[0]};
    jQuery("input#minCost").val(value1);
	jQuery("#slider").slider("values",0,value1);
});

jQuery("input#maxCost").change(function(){
	var value1=+jQuery("input#minCost").val()||min_max[0];
	var value2=+jQuery("input#maxCost").val()||min_max[1];
	if (value2 > min_max[1]) { value2 = min_max[1]};
	if(value1 > value2){value2 = value1;}
    jQuery("input#maxCost").val(value2);
	jQuery("#slider").slider("values",1,value2);
});
jQuery(".option").click(function() {
  var val = jQuery(this).data("val");
  min_max = [val[0],val[1]];
 jQuery("#slider").slider("option", {"min":val[0],"max":val[1],"values" : min_max})

})

});
</script>
</body>
</html>
Ответить с цитированием
  #37 (permalink)  
Старый 13.06.2015, 10:50
Аватар для Ramzes94
Аспирант
Отправить личное сообщение для Ramzes94 Посмотреть профиль Найти все сообщения от Ramzes94
 
Регистрация: 09.06.2015
Сообщений: 62

Можно как то убрать это глюк?

Просто так вроде все работает без глюков

Сообщение от Ramzes94 Посмотреть сообщение
jQuery(document).ready(function(){
var min_max = [+jQuery("[name='minbudget']").val(),+jQuery("[name='maxbudget']").val()]
/* слайдер цен */
jQuery("#budget").slider({
	min: min_max[0],
	max: min_max[1],
	values: min_max,
	range: true,
	change: function(event, ui) {
		jQuery("input#minCost").val(ui.values[0]);
		jQuery("input#maxCost").val(ui.values[1]);
    },
    slide: function(event, ui){
	    jQuery("input#minCost").val(ui.values[0]);
		jQuery("input#maxCost").val(ui.values[1]);
    }
});
$("#budget").slider( "option", "values", min_max );
jQuery("input#minCost").change(function(){
		var value1=+jQuery("input#minCost").val()||min_max[0];
		var value2=+jQuery("input#maxCost").val()||min_max[1];
		if(parseInt(value1) > parseInt(value2)){
		value1 = value2;
		$("input#minCost").val(value1);
	}
		$("#budget").slider("values",0,value1);	
});
jQuery("input#maxCost").change(function(){
		var value1=+jQuery("input#minCost").val()||min_max[0];
		var value2=+jQuery("input#maxCost").val()||min_max[1];
		if(parseInt(value1) > parseInt(value2)){
		value2 = value1;
		$("input#maxCost").val(value2);
	}
		$("#budget").slider("values",1,value2);
});	
jQuery(".option").click(function() {
		var val = jQuery(this).data("val");
		min_max = val;
		jQuery("#budget").slider("option", {"min":val[0],"max":val[1],"values" : [val[0],val[1]]})

	})
});


Рони так то корректно все сделал в коде?
Все вроде работает корректно)))
Ответить с цитированием
  #38 (permalink)  
Старый 13.06.2015, 11:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,081

Ramzes94,
идите в пост номер 5 и попробуйте там -- ввести значение меньше или ещё какой глюк обнаружить
Ответить с цитированием
  #39 (permalink)  
Старый 13.06.2015, 11:26
Аватар для Ramzes94
Аспирант
Отправить личное сообщение для Ramzes94 Посмотреть профиль Найти все сообщения от Ramzes94
 
Регистрация: 09.06.2015
Сообщений: 62

В общем Рони не понял тебя. Но спасибо и на этом все отлично)
Ответить с цитированием
  #40 (permalink)  
Старый 13.06.2015, 11:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,081

Ramzes94,
пост 5
Последний раз редактировалось рони, Сегодня в 11:37.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery UI -> selectmenu, как установить вручную selected? Pit jQuery 3 28.05.2015 17:31
Как установить дефотлтное значение в jquery autocomplette? heksen jQuery 1 28.02.2015 17:24
Как подключить JQUery при разработке расширения для OPERA? Romingood jQuery 1 24.10.2012 11:25
Ползунок как на YouTube и условие. dailclever Элементы интерфейса 1 23.07.2012 19:51
Необходимы советы как убирать не нужное из библиотеки jquery. dr_gluk jQuery 13 18.07.2011 12:05