Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 24.02.2017, 16:48
Аспирант
Отправить личное сообщение для MixPetrov Посмотреть профиль Найти все сообщения от MixPetrov
 
Регистрация: 12.10.2016
Сообщений: 53

Можете дать ссылки на информацию о передаче переменных и их значений между файлами. Буду очень признателен.
Ответить с цитированием
  #32 (permalink)  
Старый 24.02.2017, 17:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

MixPetrov,
я не могу вам помочь.
Ответить с цитированием
  #33 (permalink)  
Старый 24.02.2017, 17:26
Аспирант
Отправить личное сообщение для MixPetrov Посмотреть профиль Найти все сообщения от MixPetrov
 
Регистрация: 12.10.2016
Сообщений: 53

На самом деле Вы уже очень помогли.

Скажите почему так работать не будет?

В файле js
$ (function	() {
  function mathC(product_id, nmb){
    var nmb = +($('input[name=\'' + product_id + '\']').val().dataset.nmb);
   // var ns = +this.value;
    //ns = ns || 0;
    //ns = Math.ceil(ns/nmb)*nmb;
    //this.value = ns
		var ns = +$('input[name=\'' + product_id + '\']').val();
		ns = ns || 0;
		ns = Math.ceil(ns/nmb)*nmb;
		$('input[name=\'' + product_id + '\']').val(ns)
	}
    var timer;
    $('.quantity_cart [type="text"]').on("input", function() {
        window.clearTimeout(timer);
        timer = window.setTimeout(mathC, 1200)
    })
});


В файле php (firebug)

<div class="quantity_cart">
<span class="minus" onclick="quantity(2, '-10', '20', '125')"><</span>
<input name="2" oninput="mathC(2,10); isright(2,125,20); recalc(2);" size="2" value="20" maximum="125" quantity="125" minimum="10" data-nmb="10" type="text">
<span class="plus" onclick="quantity(2, '+10', '10', '125')">></span>
</div>




Пойду азы изучать
Ответить с цитированием
  #34 (permalink)  
Старый 24.02.2017, 17:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от MixPetrov
Скажите почему так работать не будет?
Сообщение от рони
переменная product_id с неба прилетит.


выберите что-то одно либо onclick, либо addEventListener, либо jquery -- лучше addEventListener
Ответить с цитированием
  #35 (permalink)  
Старый 24.02.2017, 17:54
Аспирант
Отправить личное сообщение для MixPetrov Посмотреть профиль Найти все сообщения от MixPetrov
 
Регистрация: 12.10.2016
Сообщений: 53

oninput="mathC(2,10);
где 2 = <?php echo $product['product_id']; ?> - переменная product_id

Последний раз редактировалось MixPetrov, 24.02.2017 в 19:58.
Ответить с цитированием
  #36 (permalink)  
Старый 25.02.2017, 10:32
Аспирант
Отправить личное сообщение для MixPetrov Посмотреть профиль Найти все сообщения от MixPetrov
 
Регистрация: 12.10.2016
Сообщений: 53

Переменные передаются округление работает, не подключается settimeout
Ответить с цитированием
  #37 (permalink)  
Старый 26.02.2017, 16:30
Аспирант
Отправить личное сообщение для MixPetrov Посмотреть профиль Найти все сообщения от MixPetrov
 
Регистрация: 12.10.2016
Сообщений: 53

Ребят, помогите объясните где не так делаю, уже в голове не то что каша а пена просто. 

	$ (function	() { 
		function mathC(product_id, nmb){ // сюда не приходят значения product_id и nmb
		var nmb = +($('input[name=\'' + product_id + '\']').val().dataset.nmb); // здесь похоже не правильно
		var ns = +$('input[name=\'' + product_id + '\']').val();
		ns = ns || 0;
		ns = Math.ceil(ns/nmb)*nmb;
		$('input[name=\'' + product_id + '\']').val(ns)
		}
		var timer;
		$('.quantity_cart [type="text"]').on("input", function() {
        window.clearTimeout(timer);
        timer = window.setTimeout(mathC, 1200)
		})
	});
		
		<div class="quantity_cart">
		<input type="text" name="product_id" oninput="mathC($product_id,$nmb);" size="2" value="20" maximum="125" quantity="125" minimum="10" data-nmb="10" type="text">
		</div>
Ответить с цитированием
  #38 (permalink)  
Старый 26.02.2017, 16:36
Аватар для Paguo-86PK
Профессор
Отправить личное сообщение для Paguo-86PK Посмотреть профиль Найти все сообщения от Paguo-86PK
 
Регистрация: 16.09.2009
Сообщений: 253

Сообщение от MixPetrov Посмотреть сообщение
Ребят, помогите объясните где не так делаю, уже в голове не то что каша а пена просто.
Пo-моему, setTimeout получает ссылку на инкапсулированную функцию.
Ответить с цитированием
  #39 (permalink)  
Старый 26.02.2017, 16:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Paguo-86PK,
ему надо чтобы данные из oninput перекочевали в jquery --- все возможные решения уже даны в теме, но не помогло, тс продолжает лепить отсебятину, хаотически смешивая все варианты.
Ответить с цитированием
  #40 (permalink)  
Старый 26.02.2017, 20:58
Аспирант
Отправить личное сообщение для MixPetrov Посмотреть профиль Найти все сообщения от MixPetrov
 
Регистрация: 12.10.2016
Сообщений: 53

рони,
Спасибо! нашел свою ошибку задержка срабатывает отлично.
А можно ли скриптам задать порядок выполнения.
скрипты в *.js выполняются первыми.

Можно ли в
<div class="quantity_cart">
		<input type="text" name="product_id" size="2" value="20" maximum="125" quantity="125" minimum="10" data-nmb="10" type="text">
		</div>

указать скриптам последовательность выполнения?
Что б было как то так:
<input type="text" name="product_id" size="2" oninput="function(mathC);function(is);recalc(product_id)" value="20" maximum="125" quantity="125" minimum="10" data-nmb="10" type="text">


<script type="text/javascript">
$ (function	() {
  function mathC(){
    var nmb = +this.dataset.nmb;
    var ns = +this.value;
    ns = ns || 0;
    ns = Math.ceil(ns/nmb)*nmb;
    this.value = ns
	//alert(nmb);
    }
    var timer;
    $('.quantity_cart [type="text"]').on("input", function() {
        window.clearTimeout(timer);
        timer = window.setTimeout(mathC.bind(this), 1200)
		//alert($('.quantity_cart [type="text"]'));
    })
});
  </script>
	
		<script type="text/javascript">
$ (function	() {
	function is() {
	var maximum = +this.dataset.maximum;
	var minimum = +this.dataset.minimum;
	var ns = +this.value.replace(/\D/g, "") || 0;
	if (ns>maximum)	ns=maximum;	
    if (ns<minimum)  ns=minimum;
	this.value = ns
	alert(maximum);
	}
	var timer;
    $('.quantity_cart [type="text"]').on("input", function() {
        window.clearTimeout(timer);
        timer = window.setTimeout(is.bind(this), 1400)
		//alert($('.quantity_cart [type="text"]'));
    })
});
  </script>

Последний раз редактировалось MixPetrov, 26.02.2017 в 21:01.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем ошибка применения функции borus Общие вопросы Javascript 5 19.09.2014 23:53
В чем ошибка при выводе таблицы? KamalovRadik Серверные языки и технологии 3 18.02.2012 14:30
$('[value=aaa bbb]') в чем ошибка?? iNfantry jQuery 2 31.01.2012 12:57
Ошибка вызова замыкания Андрей Параничев Общие вопросы Javascript 8 01.10.2008 21:16
не могу понять в чём ошибка scuter Общие вопросы Javascript 2 28.08.2008 15:22