2
$("body").on("click", "$[id *= ddlHour]",
        function () {
            ValidateDate();
        }
    );

这在 jQuery 1.7.1 中运行良好,但是当我升级到 1.12.4 时,它会出现以下错误:

未捕获的错误:语法错误,无法识别的表达式:$[id *= ddlHour]

我试过

$("body").on("click", "$('[id*=\"ddlHour\"]')",
        function () {
            ValidateDate();
        }
    );

但我仍然遇到同样的错误。有谁知道出了什么问题?

4

1 回答 1

0

我很惊讶在旧版本的 jQuery 中工作,因为选择器无效。那个领导$不应该在那里。只是:

$("body").on("click", "[id *= ddlHour]",
//                     ^−−−−−−−−−−−−−−−−−−−−− No $ here
    function () {
        ValidateDate();
    }
);

更多在CSS 规范中。


旁注:除非您明确想要阻止ValidateDate接收直接连接时将接收的事件对象,和/或想要阻止ValidateDate返回false以停止事件传播,否则您可以只写:

$("body").on("click", "[id *= ddlHour]", ValidateDate);
于 2020-10-05T11:33:59.447 回答