在弹出窗口中运行javascript

时间:2015-08-09 07:33:23

标签: javascript php jquery html

我在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);

});

2 个答案:

答案 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);

});