Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » вопросы по javascript

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Открыть новую тему     Написать ответ в эту тему

D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Мне казалось, это помимо документации - скриптово можно решить.

Всего записей: 1506 | Зарегистр. 05-04-2010 | Отправлено: 22:46 03-12-2021 | Исправлено: D1D1D1D, 20:47 12-12-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
Мне казалось, это помимо документации - скриптово можно решить

в таких сложных системах - нет. это прямое взаимодействие с работой скрипта, поэтому нужно учитывать что и как делает он сам.

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 22:47 03-12-2021
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
А в доках я кстати искал - там есть группирование, но оно работает для всей базы, всё подряд группирует.

Всего записей: 1506 | Зарегистр. 05-04-2010 | Отправлено: 23:03 03-12-2021 | Исправлено: D1D1D1D, 00:39 04-12-2021
b7music



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день. Такой вопрос
Есть кнопка
 

Код:
<li class="btn btn-transparent" onclick="setPriceAction" value="<?=$value?>" name="quantity" data="<?=$value?>"><?=$value?> шт </br><?=CurrencyFormat($summa, 'RUB')?></a></li>

вот так выглядит

Код:
<li class="btn btn-transparent" onclick="setPriceAction" value="15" name="quantity" data="15">15 шт <br>28 560 руб.</li>

 
Есть функция  

Код:
window.JCCatalogElement.prototype.setPriceAction = function(change, sku)
{
    var measure = this.offers[this.offerNum].MEASURE && this.offers[this.offerNum].SHOW_MEASURE=="Y" ? this.offers[this.offerNum].MEASURE : '';
    var product = $(this.obProduct),
        check_quantity = '',
        is_sku = (typeof sku !== 'undefined' && sku == 'Y');
 
    this.offers[this.offerNum].offer_set_quantity = this.offers[this.offerNum].CONFIG.MIN_QUANTITY_BUY;
    if($(product).find('input[name=quantity]').length)
        this.offers[this.offerNum].offer_set_quantity = $(product).find('input[name=quantity]').val();
 
 

Вопрос, каким образом передать значение data при нажатии кнопки в эту функцию?
 
Добавлял
Код:
// я добавил
    if($(product).find('input[name=quantity]').length)
        this.offers[this.offerNum].offer_set_quantity = $(product).find('li[name=quantity]').val();
...

при нажатии пишет  setPriceAction is not defined
Вот сам скрипт https://paste.ofcode.org/NBZASuQaian7Et5Vfdwsnx
 
http://185.46.11.25/catalog/product/buket-kholodnoe-serdtse-2-shary-folga-lateks-dekor-napolnenie-13sht-geliy-obrabotka-gruzik/
 
данные в форму передаются, но если выставлять значение руками в поле количество, то происходит ajax запрос с пересчетом. Как узнать какое событие вызывается в этот момент и повесить его на кнопку?

Всего записей: 684 | Зарегистр. 04-03-2010 | Отправлено: 11:08 08-12-2021 | Исправлено: b7music, 14:22 08-12-2021
sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
чтобы не плодить новых тем
 
имеем  
 
<script>
var brob =  50000
 
document.addEventListener("click",
(event) => {
        brob = 1000;
});
 
 
//Как сделать, что бы изменившие данные находящиеся в brob  попали в данный скрипт?
 
 
$(window).on("load", function() {
    setTimeout(function(){  
                     
        alert ('ee')
    }, brob  );
})
</script>

Всего записей: 89 | Зарегистр. 13-04-2007 | Отправлено: 16:40 08-12-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sem88
Эм, если клика не будет до этого события onload, никак.
Потому что оно  будет вызвано раз, когда все загружается, и все. Можно, конечно, триггернуть его еще раз, при изменении переменной. В описываемом примере данная переменная уже глобальная.

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 16:47 08-12-2021
sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
>Можно, конечно, триггернуть его еще раз, при изменении переменной.
а как  это можно сделать?

Всего записей: 89 | Зарегистр. 13-04-2007 | Отправлено: 16:50 08-12-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sem88
В обработке клика сделать  $(window).trigger('load');

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 16:53 08-12-2021
sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сделано $(window).trigger("load", function() {
не работает
 
Добавлено:
пойдем с другой сторны.  
 
меняем var на let
 
<script>  
let brob =  5000
   
 document.addEventListener("click",  
 (event) => {  
         brob = 1000;  
 });  
   
 </script>  
 
 
   
 <script>  
 $(window).on("load", function() {  
     setTimeout(function(){  
                       
         alert ('ee -' +brob)  
     }, brob  );  
 })  
 </script>
 
Интересный эффект  alert  выводит "ee - 1000", хотя скрипт по прежнему срабатывает (появляется алерт) через 5 сек. В чем загвоздка?

Всего записей: 89 | Зарегистр. 13-04-2007 | Отправлено: 16:59 08-12-2021 | Исправлено: sem88, 17:17 08-12-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sem88
Зачем фантазировать? Я не так написал.
И это уже не изменит таймер запущенный через setTimeout, а запустит второй, с новой временной задержкой. Которая может быть и короче уже запущенного таймера. Чтобы остановить первоначально запущенный нужен использовать функцию clearTimeout. Читайте мануал как работает.

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 17:17 08-12-2021
sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо
 
Добавлено:
еще возник такой вопрос
 
 
предположим есть еще
document.addEventListener('touchstart', function(e){
 
 ... код..
 
 
как сделать чтобы код выполнился только  один раз и всё больше на него браузер не реагировал?

Всего записей: 89 | Зарегистр. 13-04-2007 | Отправлено: 17:35 08-12-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sem88

Цитата:
браузер не реагировал

Либо ввести переменную-флаг, по значению которой реагировать или нет.
Либо https://developer.mozilla.org/ru/docs/Web/API/EventTarget/removeEventListener
Но удаление не будет работать с анонимной функцией.

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 18:04 08-12-2021
sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
благодарю

Всего записей: 89 | Зарегистр. 13-04-2007 | Отправлено: 18:18 08-12-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
b7music

Цитата:
при нажатии пишет  setPriceAction is not defined

правильно пишет, ведь это не глобальная функция, а метод прототипа..

Цитата:
window.JCCatalogElement.prototype.setPriceAction

дополняет объект типа JCCatalogElement методом setPriceAction.
поэтому и обращаться нужно к экземпляру этого объекта.
 
https://developer.mozilla.org/ru/docs/Learn/JavaScript/Objects/Object_prototypes

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 21:04 08-12-2021 | Исправлено: Mavrikii, 21:31 08-12-2021
b7music



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
поэтому и обращаться нужно к экземпляру этого объекта.

Спасибо. Разобрался с этим. Было событие на изменение формы. Еще один вопрос возник. Вот у меня есть функция
 

Код:
$(function(){
    $('ul.list_values_wrapper li').click(function(){
      input = $('.counter_block input[name=quantity]').val($(this).attr('value'));
 
      input.val($(this).attr('value'));
      input.change();
 
    });
});

но она вставляет значение ко всем input на странице с этим классом. А как указать элемент текущий?

Всего записей: 684 | Зарегистр. 04-03-2010 | Отправлено: 12:19 09-12-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
b7music

Цитата:
. А как указать элемент текущий?

Что значит текущий элемент?
Внутри того li, где кликнули
$('.counter_block input[name=quantity]', this).

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 13:19 09-12-2021 | Исправлено: Mavrikii, 13:22 09-12-2021
b7music



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Не так выразился наверное, вот у меня три элемента рядом, с одинаковыми полями, при нажатии кнопки, например, 50 штук, значение 50 подставляется у всех товаров https://prnt.sc/22gak52
 
Попробовал так:
  input = $('.counter_block input[name=quantity]', this).val($(this).attr('value'));    
перестает передавать значение в поле counter_block

Всего записей: 684 | Зарегистр. 04-03-2010 | Отправлено: 14:07 09-12-2021 | Исправлено: b7music, 14:48 09-12-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
b7music

Цитата:
перестает передавать значение в поле counter_block

потому что я не понял что вы хотите.
и где находится этот counter_block. без структуры страницы тут нельзя сказать.
ссылку на конкретно эту ситуацию.

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 21:31 09-12-2021
MihailM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не знаю сюда данный вопрос или ..
Вообщем есть ссылка , есть небольшой Ява скрипт , где надо ввести значение , после ввода кнопка ссылка активна . Потом срабатывает форма и тебя перенаправляет на др сайт . Ссылка имеет доп. параметры через "=&" ..  
Вопрос , как изменить один параметр в ссылке , чтоб параметр имел введенное значение из Ява скрипта в ссылке ?
пример ссылки:

Цитата:
?account=хххх&sum=#ma&customerEmail=хххх.ru&customerPhone=&desc=ххххх&detectDevice=1

Всего записей: 2674 | Зарегистр. 19-10-2003 | Отправлено: 22:28 20-12-2021 | Исправлено: MihailM, 22:29 20-12-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MihailM
https://developer.mozilla.org/ru/docs/web/javascript/reference/global_objects/string/replace
и вопрос для javascript регулярные выражения
получаете строку, заменяете регулярным выражением на то, что нужно.

Всего записей: 16417 | Зарегистр. 20-09-2014 | Отправлено: 23:09 20-12-2021
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Компьютерный форум Ru.Board » Интернет » Web-программирование » вопросы по javascript


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru