2012-07-04 151 views
1

以下jQuery无法按预期工作。我只是试图点击一个图像时触发一个事件。jQuery点击未在图像上触发

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

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

当页面加载时,我看到“document.ready has fired”警告,所以jQuery和我的自定义.js文件被正确引用。

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

更新: 的jQuery是正确的(在新页面的作品,但不是我的现有页面上),我的解决方法,现在我已经使用了onclick<img>标签,因为这不得不说是一个“权宜之计',我会看看发生了什么,谢谢大家的意见。

+0

做你的所有图像加载页面加载? – thecodeparadox

+0

是的 - 我看到了我所有的图像。该页面看起来已正确加载。 – bgs264

+0

D你有链接,任何控制台错误? – 472084

回答

0

我倾向于使用jQuery的绑定f因为如果任何东西在DOM中动态改变,它仍然会选择事件,因为我在过去使用jQuery的.click函数也遇到了问题,这导致了相同的问题。

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

    $("img").bind('click', function() { 
     alert("image has been clicked"); 
    }); 
}); 
+0

这工作 - 谢谢:) – bgs264

1

如果所有的图像的arent加载照片直接在页面加载时,你可以试试这个

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

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

$("body").on("click", "img", function() {... 
+1

为了向其添加事件侦听器,不需要加载图像,或者甚至不需要src。 – Esailija

+0

@Esailija真的,但如果他们动态地添加到DOM,最后一行可能是一个选项 – Johan

0

只是一个猜测:

试试这个:

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

不错,但因为原始代码中的选择器(“img”),它将拾取所有img元素,并且只创建1个工作记录if你喜欢在哪里,因为这将使许多记录做同样的工作。希望有帮助:) –