Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.01.2020, 07:23
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

Скрытие элемента
Доброго времени суток!
В товаре есть кнопка "В корзину". При клике на данную кнопку кнопка переименовывается на "В корзине".
Необходимо ниже данной кнопки добавить кнопку "Покупка в кредит" и чтобы при клике на данную кнопку не появлялась вторая кнопка "В корзине".
На данный момент при клике на кнопку "Покупка в кредит" добавляется товар в корзину и данная кнопка меняется на надпись "В корзине", те. кнопка "В корзине" дублируется https://prnt.sc/qmu7n4
Код кнопки:
<div class="row columnRow">
                <a href="#" class="addCart addCartCredit changeID changeQty changeCart" data-id="<?=$arResult["ID"]?>" data-quantity="<?=$arResult["EXTRA_SETTINGS"]["BASKET_STEP"]?>">
                    <img src="<?=SITE_TEMPLATE_PATH?>/images/Осн_new.png" alt="<?=GetMessage("CREDIT_BEZ_PEREPLAT")?>" class="icon"><?//=GetMessage("CREDIT_BEZ_PEREPLAT")?>
                    <?if (isset($arResult["PRICE"]["DISCOUNT_PRICE"])):?>
                        от <?=CCurrencyLang::CurrencyFormat($arResult["PRICE"]["DISCOUNT_PRICE"], $arResult["EXTRA_SETTINGS"]["CURRENCY"], true)?> в месяц
                    <?else:?>
                        <?=CCurrencyLang::CurrencyFormat($arResult["PRICE"]["RESULT_PRICE"]["BASE_PRICE"], $arResult["EXTRA_SETTINGS"]["CURRENCY"], true)?>
                    <?endif?>
                </a>
            </div>

Если кнопке добавить
onclick="style.display='none'"
, тогда после нажатия кнопка исчезает - так и нужно. Но если обновить страницу, тогда отображается две кнопки "В корзине" https://prnt.sc/qmu7n4

Подскажите, пожалуйста, каким образом скрыть кнопку после клика на неё и чтобы кнопка "В корзине" второй раз не отображалась? Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 13.01.2020, 07:34
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

Может возможно опираясь на класс addCartCredit по наличию данного класса у элемента при клике на него скрыть?
Ответить с цитированием
  #3 (permalink)  
Старый 13.01.2020, 07:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от _marisha
Может возможно опираясь на класс addCartCredit по наличию данного класса у элемента при клике на него скрыть?
То есть <a href="#" class="addCart... добавляет и просто, и по кредиту?
Ответить с цитированием
  #4 (permalink)  
Старый 13.01.2020, 07:59
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

laimas, спасибо что откликнулись )
В простой кнопке(т.е. "В корзину") нет класса addCartCredit
<a href="#" class="addCart changeID changeQty changeCart disabled" data-id="<?=$arResult["ID"]?>" data-quantity="<?=$arResult["EXTRA_SETTINGS"]["BASKET_STEP"]?>"><img src="<?=SITE_TEMPLATE_PATH?>/images/incart.png" alt="<?=GetMessage("ADDCART_LABEL")?>" class="icon"><?=GetMessage("ADDCART_LABEL")?></a>

На данный момент у кнопки "Покупка в кредит" есть класс addCartCredit, которого нет в кнопке "В корзину".
Вот и думаю, может по наличию данного класса скрывать элемент.
Потому что данный класс есть как в кнопке "Покупка в кредит", так и в кнопке "В корзине", которая появляется (дублируется) после клика на "Покупка в кредит".
Можно сделать так onclick="this.remove();", тогда при клике на "Покупка в кредит" кнопка "В кредит" не отображается, но при обновлении страницы кнопка "В корзине" всё равно дублируется.
Ответить с цитированием
  #5 (permalink)  
Старый 13.01.2020, 08:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от _marisha
данный класс есть как в кнопке "Покупка в кредит", так и в кнопке "В корзине", которая появляется (дублируется) после клика на "Покупка в кредит".
Интересен иной вопрос - если товар уже в корзине, почему сервер упорно добавляет добавляет две кнопки? Вы же боретесь с мельницей - меняете, а после обновления страницы кнопка опять есть. А ведь по идее, пусть если и остается "В кредит" после добавления товара, то это уже не добавление должно быть, а опция, которую можно выбрать. Либо нет, добавление только в кредит или без него, тогда сервер должен определять, что товар в корзине и не выводить никаких лишних кнопок. Тут косяк на сервере, а вы ищите проблемы на клиенте.
Ответить с цитированием
  #6 (permalink)  
Старый 13.01.2020, 08:57
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

laimas, изначально была одна кнопка "В корзинУ", после нажатия на которую товар добавляется в корзину и кнопка становится "В корзинЕ".
В связи с интеграцией покупки в кредит в товаре необходимо добавить кнопку "Покупка в кредит", которая также должна добавлять товар в корзину https://prnt.sc/qmup7e
Для этого просто была скопирована кнопка "В корзинУ" и добавлен класс addCartCredit для изменения стиля кнопки. Но при этом кнопка "В корзинЕ" дублируется.

Найден код:
var updateAddCartButton = function($currentElement){
	var $imageAfterLoad = $currentElement.find("img");
	$currentElement.text(LANG["ADDED_CART_SMALL"])
		.attr("href", SITE_DIR + "personal/cart/")
		.prepend($imageAfterLoad.attr("src", TEMPLATE_PATH + "/images/added.png"))
		.addClass("added");
};

Если его закомментировать, тогда после добавления товара в корзину кнопки "В корзинЕ" не появляются, вместо них отображаются кнопки "В корзинУ" и "Покупка в кредит".
Ответить с цитированием
  #7 (permalink)  
Старый 13.01.2020, 09:00
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от _marisha
Для этого просто была скопирована кнопка "В корзинУ" и добавлен класс addCartCredit для изменения стиля кнопки.
И это называется интеграцией?
Ответить с цитированием
  #8 (permalink)  
Старый 13.01.2020, 09:01
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

Если сделать console.log($currentElement);, тогда в консоли выводится:
n.fn.init [a.addCart.changeID.changeQty.changeCart, context: a.addCart.changeID.changeQty.changeCart]

n.fn.init [a.addCart.addCartCredit.changeID.changeQty.changeCart, context: a.addCart.addCartCredit.changeID.changeQty.changeCart]

n.fn.init [a.addCart.changeID.changeQty.changeCart, context: a.addCart.changeID.changeQty.changeCart]

n.fn.init [a.addCart.addCartCredit.changeID.changeQty.changeCart, context: a.addCart.addCartCredit.changeID.changeQty.changeCart]
Ответить с цитированием
  #9 (permalink)  
Старый 13.01.2020, 09:02
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

Сообщение от laimas Посмотреть сообщение
И это называется интеграцией?
- ну это один из этапов
Ответить с цитированием
  #10 (permalink)  
Старый 13.01.2020, 09:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

_marisha, то есть вы вставили на страницу js код (показанный выше), который добавляет кнопку и запрос на добавление товара, а при этом анализа корзины не производится?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрытие элемента при выборе option в select html'щик Элементы интерфейса 7 11.11.2018 13:46
Скрытие элемента без функции hide jQurey kazak-88 Элементы интерфейса 1 03.02.2016 13:11
Как сделать скрытие открытого элемента при открытии другого showHide candro Общие вопросы Javascript 6 15.10.2014 11:23
Скрытие элемента при клике yyyyuriyyyy Общие вопросы Javascript 2 04.05.2014 13:28
Скрытие элемента при клике вне этого элемента astrogator Общие вопросы Javascript 4 11.05.2013 21:24