检测单击图像

我正在尝试动态加载图像并显示它们,如下所示

var uploader = $('#').plupload('getUploader'); uploader.bind('FileUploaded', function (up, file, res) { $('#').append("
<a href='https://stackoverflow.com/questions/9148409/detect-click-on-an-image/Uploads/" + document.getElementById("").value + "/" + file.name + "'/> <img src='https://stackoverflow.com/questions/9148409/detect-click-on-an-image/Uploads/" + document.getElementById("").value + "/" + file.name + "' width='70' height='55' data-full='https://stackoverflow.com/questions/9148409/detect-click-on-an-image/Uploads/" + document.getElementById("").value + "/" + file.name + "'/>
"); });

这是我的标记:

  

如果我在div上这样做,它会给我一个警报,但不是在图像上,而是在div上:

  $('.imgContain').click(function () { alert('You Clicked Me'); }); 

而且我已经尝试过这种方式,但是它甚至不会给我任何警报。

  $('.imgContain a').click(function () { alert('You Clicked Me'); }); 

那我该怎么做?

你应该使用on方法

  $('.imgContain').on("click","a,img", function (e) { e.preventDefault(); alert('You Clicked Me'); }); 

要确切知道你的DOM是什么样子有点难,但我猜你用类.imgContain将图像添加到div中。 如果要向这些图像添加点击事件,可以执行以下操作:

 $('.imgContain').on("click", "img", function () { alert('You Clicked Me'); }); 

我相信你是动态添加图像的,你应该使用.on()方法来绑定click事件,而不是使用.click()

注意如果由于某种原因使用以前版本的jQuery,则可以将.on()更改为使用.live()

对于你附加的锚 ,你需要使用.live()来附加click事件,如:

  $('.imgContain a').live("click", function (event) { event.preventDefault(); alert('You Clicked Me'); }); 

在jQuery中学习函数。 并在你的代码中使用它..

jQuery版本1.4.1及更高版本。

因为在加载页面后,元素会动态放置在html上。 点击function没有绑定。