我在PHP工作,我在页面上有一个add item
按钮,当用户点击时会弹出一个使用tinybox.js
脚本的窗口。弹出窗口是一个PHP页面本身,它从数据库中检索一些数据。在这个弹出页面上,我有一些带有+和 - 按钮的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);
});
答案 0 :(得分:1)
请改为尝试:
$(document).on("click", ".ddd", function () {
这将确保在事件绑定发生时为不在DOM中的元素触发事件。没有关于这个JS运行时DOM的状态的更多信息很难回答(有些人会在这里帮助你关于这个“弹出窗口”)
从这里采取:LINK
答案 1 :(得分:0)
您必须在jquery中body
之前使用.ddd
。
更新的代码是
$("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);
});