0

我有一个页面“productCalculator.php”,要求用户选择一个类别(从选择中)。一旦他们这样做,我使用 $.get("getProducts.php") 填充一个 div(基于他们的决定)。

新的 div 包含另一个选择,其 id 为 productID。我尝试将以下代码放入“productCalculator.php”:

$(function() {
    $("#productID").change(function() {
        $("pageTitle").html("Step 1: Select A Category");
        var prodID = $("#productID").val();

        alert(prodID);
    });
});

当我在选择上更改产品时,它不会执行。但是,如果我将上述脚本放入“getProducts.php”代码中,它就可以正常工作。

如何让更改侦听器处理“get”调用生成的内容?

4

1 回答 1

1

您可以使用on()为将来创建的元素附加事件。在进行事件绑定时,具有 id 的元素productID在 DOM 中不存在,因此它不会附加到在 ajax 调用期间动态添加到 DOM 的元素。在这种情况下,事件委托可帮助您随时将事件附加到文档头或 DOM 中存在的任何其他容器,并将事件委托给#productID稍后添加的输入。

$(document).on('change', "#productID", function() { // Use another container instead of document head.
        $("pageTitle").html("Step 1: Select A Category");
        var prodID = $("#productID").val();

        alert(prodID);
    });
于 2013-06-17T01:46:14.137 回答