2015-08-09 14 views
0

Я работаю в PHP, и у меня есть кнопка add item на странице, которая, когда пользователь нажимает, выведет окно, используя сценарий tinybox.js. Всплывающее окно - это сама страница PHP, которая извлекает некоторые данные из db. На этой всплывающей странице у меня есть JavaScript с кнопкой + и -, чтобы пользователь мог изменить количество. Это прекрасно работает при загрузке страницы напрямую, но кажется, что JavaScript не будет работать, когда страница всплывает.Запуск javascript во всплывающем окне

Может кто-нибудь скажет мне, что мне нужно сделать, чтобы заставить код работать над всплывающим окном.

Вот Javascript для кнопок количества изменений:

$(".ddd").on("click", function() { 

    var $button = $(this), 
     $input = $button.closest('.set-quantity').find("input.quantity-input"); 
    var oldValue = $input.val(), 
     newVal; 

    if ($.trim($button.text()) == "+") { 
     newVal = parseFloat(oldValue) + 1; 
    } else { 
     // Don't allow decrementing below zero 
     if (oldValue > 1) { 
      newVal = parseFloat(oldValue) - 1; 
     } else { 
      newVal = 1; 
     } 
    } 

    $input.val(newVal); 

}); 

ответ

1

Попробуйте вместо этого:

$(document).on("click", ".ddd", function() { 

Это обеспечит событие вызывается для элементов не в DOM, когда связывание происходит событие , Трудно ответить без дополнительной информации о состоянии DOM в точке этого JS работает (Кто-то может помочь вам в этом отношении этого «всплывающих окон»)

Взято отсюда: LINK

+0

Большое спасибо Dan, так оно и было! Очень признателен. – Jarrow

0

Вы должны использовать body до .ddd в вашем jquery. Обновленный код:

$("body .ddd").on("click", function() { 

    var $button = $(this), 
     $input = $button.closest('.set-quantity').find("input.quantity-input"); 
    var oldValue = $input.val(), 
     newVal; 

    if ($.trim($button.text()) == "+") { 
     newVal = parseFloat(oldValue) + 1; 
    } else { 
     // Don't allow decrementing below zero 
     if (oldValue > 1) { 
      newVal = parseFloat(oldValue) - 1; 
     } else { 
      newVal = 1; 
     } 
    } 

    $input.val(newVal); 

}); 
Смежные вопросы