未捕获的类型错误:$(...).on不是一个函数。

5

我在网页上使用JQuery UI对话框,出现了以下错误:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Test</title>

    <script src="Scripts/jquery-1.6.4.js"></script>
    <script src="Scripts/jquery-ui-1.11.4.js"></script>
    <script>
        $(document).ready(function () {
            $(".hlk1").on("click", function () {
                var linkId = $(this).attr("linkID");
                alert(linkId);
                // initialize dialog
                var dlg = $("#dialog").dialog({
                    autoOpen: false,
                    modal: true,
                    draggable: false,
                    resizable: false,
                    position: ['center', 'top'],
                    height: 380,
                    width: 530,
                    dialogClass: 'ui-dialog-osx',
                    buttons: {
                        "Done": function () {
                        $(this).dialog("close");
                    }
                }
            });

            // load content and open dialog
            dlg.load('page2.html?id=' + linkId).dialog('open');
        });
});
</script>
</head>

<body>

<a href="#" class="hlk1" linkid="305">Click here</a>
<br/>
<a href="#" class="hlk1" linkid="890">Click here</a>
<br/>
<div id="dialog"></div>
</body>
</html>

有人能帮我解决这个问题吗?可能是 JQuery 版本的问题,但这是 Visual Studio 通过 NuGet 包管理器安装的版本。


3
.on 需要 jQuery 1.7。 - Andrew Brooke
JQuery UI怎么样?哪个版本与1.7兼容? - Coding Duchess
根据此页面,jQuery UI 1.12.0-beta.1支持jQuery1.7+。 - Andrew Brooke
1个回答

15

.on() 是在 jQuery 1.7 中引入的,但看起来您正在运行 1.6.4。如果您无法更改版本,则只需将函数更改为 .click 即可。

$(".hlk1").click(function () {
    ...

1
请注意,load()正在事件处理程序之外被调用。 - charlietfl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接