2

我用 .net MVC 3 开始了一个小网络项目。我的问题:我包含了 Jquery 1.8.3.js。但是我的函数在 javascript 文件中不起作用:

这不起作用:

$(document).ready(function() {
    $('input:button').button();
});

$('#testbut').on('click', function (event, ui) {

    alert("CLICK");

});

这仍然工作正常:

$(document).ready(function() {
    $('input:button').button();

    $('#testbut').on('click', function (event, ui) {

    alert("CLICK");

    });
});

我不知道为什么。

包含的顺序正确。

4

2 回答 2

5

第一个示例失败,因为代码在页面加载时正在执行,并且它引用的元素尚未加载。这也是第二个示例起作用的原因。

通过将您的代码放置在文档就绪块中,它会延迟执行它,直到页面加载。

于 2012-12-21T21:18:16.310 回答
1

当您将代码块放入时$(document).ready(),它会在文档加载后等待将侦听器附加到目标。因此,在您的第一个示例中,jquery 附加了侦听$('#testbut').on('click', function (event, ui) {器,但 DOM 尚未加载元素。在第二个示例中,它仅在加载文档后附加侦听器。

于 2012-12-21T21:21:00.090 回答