我正在将cakephp 2.6应用程序的代码升级到cakephp 3.7
在应用程序下的视图文件中写入的jquery代码不再起作用,这之前已经起作用。

下面是无法正常工作的代码示例

$(document).ready(function () {
    $("#CouponAllowTime").click(function () {
        if ($(this).is(":checked")) {
            $("#timeDiv").show();
        } else {
            $("#timeDiv").hide();
        }
    }
}


但是当我尝试使用$(document).on()运行代码时,它可以工作

$(document).ready(function () {
    $(document).on('click','#CouponAllowTime',function () {
        if ($(this).is(":checked")) {
            $("#timeDiv").show();
        } else {
            $("#timeDiv").hide();
        }
    }
}


我不想为此更改应用程序的多个文件,这是什么问题?

最佳答案

从一个版本升级到另一版本时,控件是动态生成的。要将事件附加到动态创建的元素上,必须使用通过.on()实现的委托事件处理程序。

07-28 08:22