我想知道当用户点击facebook newsfeed上的图像来执行某些操作时触发功能的有效方法。
我可以为每个图像添加一个监听器,但这不是很有效。还有别的吗?
答案 0 :(得分:0)
这样的事情:http://jsfiddle.net/c24w/DJ2ax/4/
<强> HTML 强>
<div id="newsfeed">
<img src="http://i46.tinypic.com/2cos8hw.png" id="1">
<img src="http://i46.tinypic.com/2cos8hw.png" id="2">
<img src="http://i46.tinypic.com/2cos8hw.png" id="3">
<div><a href="#">Something else clickable</a></div>
</div>
<强>的JavaScript 强>
var newsfeed = document.getElementById('newsfeed');
newsfeed.onclick = function handleNewsfeedClick(e) {
var el = e.srcElement;
if (el.tagName === 'IMG') {
console.log('Clicked image ' + el.id);
}
};
这样做是将点击事件监听器附加到新闻源。单击新闻源的子元素时,事件将传播到新闻源并被其单击侦听器捕获。然后检查点击事件的来源是否是图像。
输出进入浏览器的控制台。 (我在Chrome中简要测试了一下。)