powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / Jquery клик срабатывает не с первого раза
2 сообщений из 2, страница 1 из 1
Jquery клик срабатывает не с первого раза
    #39817844
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 $(".arrow_button").click(function(){
        if (!$(this).data('status')) {
  	$(this).html('В корзине');
    $(this).data('status', true);
    $(this).addClass("btn-disabled");
  }
  else {
  //	$(this).html('Купить');
   // $(this).data('status', false);
  // alert('товар уже в корзине');
  }
    });



Когда кликаю, сначала идет alert, потом ничего непроисходит, а после второго клика уже пишет "в корзине"

в чем косяк подскажите?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Jquery клик срабатывает не с первого раза
    #39972788
AndrewInc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
angrybot,

Странно, что идёт alert - он закоментарен :)
Я бы предложил такой вариант:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
const check=function(){
    const status = $(this).data('status');
    if (status) {
        $(this).html('В корзине');
        $(this).addClass("btn-disabled");
    } else {
        $(this).html('Купить');
        $(this).removeClass("btn-disabled");
    }
    return status;
}

$(".arrow_button").each(check).click(function(){
    if ($(this).data('status')) {
        alert('товар уже в корзине');
    } else { //не куплен
        alert('Покупаем этот товар');
        $(this).data('status', true);
        check.call(this);
    }
    return false;
});


Писал вслепую, будет странно если заработает с первого раза :) Но, надеюсь идея понятна.
1. для всех кнопок проверить куплен/не куплен товар на основе data('status')
2. при клике проверять data('status').
2.1. Если статус как-либо установлен, то писать что товар уже куплен.
2.2. Если нет - написать что в данный момент покупаем этот товар; установить ему статус в true и обновить надписи на кнопке.

Не следует забывать, что <button> может сабмитить форму если в ней находится, потмоу лучше вернуть false в конце обработчика клика по нему.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / Jquery клик срабатывает не с первого раза
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]