1

以下 jQuery 未按预期工作。我只是想在单击图像时触发一个事件。

$(document).ready(function () {
    alert("document.ready has fired");

    $("img").click(function () {
        alert("image has been clicked");
    });
});

我在页面加载时看到“document.ready 已触发”警报,因此正确引用了 jQuery 和我的自定义 .js 文件。

我怀疑我遗漏了一些非常明显的东西,但是什么?

更新: jQuery 是正确的(在新页面中有效,但在我现有的页面上无效),因为我现在的解决方法是onclick<img>标签上使用,因为这必须是“快速修复”,我会调查发生了什么不过,感谢大家的意见。

4

3 回答 3

1

如果您的所有图像都没有在页面加载时直接加载,您可以试试这个

$(window).load(function () {
    alert("window.load has fired");

    $("img").click(function () {
        alert("image has been clicked");
    });
});

或者

$("body").on("click", "img", function () {...
于 2012-07-04T16:13:57.427 回答
0

只是一个猜测:

试试这个:

$("img").each(function(){
    $(this).click(function () {
        alert("image has been clicked");
    });
});
于 2012-07-04T16:25:05.217 回答
0

我倾向于使用 jQuery 的绑定函数,因为如果在 DOM 中动态更改了任何内容,它仍然会接收该事件,因为我过去使用 jQuery 的 .click 函数也遇到过问题,这导致了同样的问题。

$(document).ready(function () {
    alert("document.ready has fired");

    $("img").bind('click', function () {
        alert("image has been clicked");
    });
});
于 2012-07-04T16:28:23.450 回答