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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

D1D1D1D

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

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

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

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

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

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

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

Всего записей: 1367 | Зарегистр. 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 запрос с пересчетом. Как узнать какое событие вызывается в этот момент и повесить его на кнопку?

Всего записей: 674 | Зарегистр. 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, никак.
Потому что оно  будет вызвано раз, когда все загружается, и все. Можно, конечно, триггернуть его еще раз, при изменении переменной. В описываемом примере данная переменная уже глобальная.

Всего записей: 15112 | Зарегистр. 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');

Всего записей: 15112 | Зарегистр. 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. Читайте мануал как работает.

Всего записей: 15112 | Зарегистр. 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
Но удаление не будет работать с анонимной функцией.

Всего записей: 15112 | Зарегистр. 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

Всего записей: 15112 | Зарегистр. 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 на странице с этим классом. А как указать элемент текущий?

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

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

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

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

Всего записей: 15112 | Зарегистр. 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

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

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

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

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

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



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

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

Всего записей: 2498 | Зарегистр. 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 регулярные выражения
получаете строку, заменяете регулярным выражением на то, что нужно.

Всего записей: 15112 | Зарегистр. 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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru