2015-08-09 45 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); 

});