За последние 24 часа нас посетили 20628 программистов и 1103 робота. Сейчас ищут 384 программиста ...

Проблемы с корзиной AJAX

Тема в разделе "JavaScript и AJAX", создана пользователем Nucler777, 3 июн 2019.

  1. Nucler777

    Nucler777 Новичок

    С нами с:
    3 июн 2019
    Сообщения:
    3
    Симпатии:
    0
    Доброго времени суток! Не могу в одном проекте решить задачу: При добавлении товара в корзину отправляются данные AJAX и в ответ приходит содержание корзины в HTML, я вставляю данные из AJAX на сайт, но перестают работать кнопки созданного контента. Кто с таким сталкивался ? Сайт: https://grill.kh.ua
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    А на чём фронт? На jQuery? Ты просто пересоздал кусок DOM, обработчики и слетели
     
  3. Nucler777

    Nucler777 Новичок

    С нами с:
    3 июн 2019
    Сообщения:
    3
    Симпатии:
    0
    Да, на jQuery. А Как сделать чтобы созданные кнопки оставались рабочими ?
     
  4. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    На пальцах, была у тебя кнопка на странице и ее определение в на js
    Код (Javascript):
    1. <div id="block">
    2.     <button id="test">test</button>
    3. </div>
    4. <script>
    5. var test = document.getElementById('test');
    6. test.onclick = function() {
    7.     alert( 'test' );
    8. };
    9. <script>
    потом ты решил прикрутить сюда ajax запрос
    Код (Javascript):
    1. <div id="block">
    2.     <button id="test">test</button>
    3. </div>
    4. <script>
    5. var test = document.getElementById('test'),
    6.       block = document.getElementById('block ');
    7. test.onclick = function() {
    8.     alert( 'test' );
    9. };
    10. $.get( "test.php", function( data ) {
    11.       block.innerHTML = data;  // data = '<button id="test">test</button>'
    12. });
    13. <script>
    После этого кнопка уже не будет работать.
    Проблему можно решить так:
    Код (Javascript):
    1. <div id="block">
    2.     <button id="test">test</button>
    3. </div>
    4. <script>
    5. function start(){
    6.     var test = document.getElementById('test'),
    7.           block = document.getElementById('block ');
    8.     test .onclick = function() {
    9.         alert( 'test' );
    10.      };
    11. }
    12. start();
    13. $.get( "test.php", function( data ) {
    14.       block.innerHTML = data;  // data = '<button id="test">test</button>'
    15.       start();
    16. });
    17. <script>
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    Если jQuery, там есть такой приём:
    Код (Javascript):
    1. $("body").on("click", ".class", function () {
    2. });
    После этого можешь смело перезаписывать .class сколько хочешь, обработчик останется актуальным
     
    TeslaFeo нравится это.
  6. Nucler777

    Nucler777 Новичок

    С нами с:
    3 июн 2019
    Сообщения:
    3
    Симпатии:
    0
    Спасибо! Очень помогли решить проблему!