如何捕获对多个图像的点击?
How to catch clicks on multiple images?
我有一个 iOS uiwebview,其中包含多个图像映射,我需要捕捉点击,因此我可以处理不同 iOS 设备上的缩放。我安装的点击处理程序适用于第一张图片,但不适用于后续图片。如何让点击处理程序处理多个图像?相关代码如下:
$.fn.imageMapSetup2 = function () {
$('img').each(function () {
if (typeof ($(this).attr('usemap')) == 'undefined') {
return;
}
var img = $(this);
// add click handler
img.on('click', function (event) {
img.imgClick(event);
});
});
};
$.fn.imgClick = function (mouseDown) {
mouseDown.preventDefault();
var $img = this;
var map = $img.attr('usemap').replace('#', '');
$('map[name="' + map + '"]').find('area').each(function () {
var $this = $(this),
coords = $this.attr('coords').split(',');
// lots of scaling code omitted
if (mouseX >= left && mouseX <= right &&
mouseY >= top && mouseY <= bottom) {
window.location = $this.attr('href');
}
});
};
仅供参考,我已经在 Safari 中调试了代码,function imgClick()
没有为第二张和后续图片调用。
为图像的父元素添加一个点击事件侦听器。这可能是 body 元素。将事件作为参数传递。然后,检查事件,并使用该变量对图像进行更改。
document.addEventListener("click", function (event) {
if (!event.target.tagName === "img") return;
if (typeof event.target.getAttribute("usemap") == "undefined") {
return;
}
imgClick(event);
});
我有一个 iOS uiwebview,其中包含多个图像映射,我需要捕捉点击,因此我可以处理不同 iOS 设备上的缩放。我安装的点击处理程序适用于第一张图片,但不适用于后续图片。如何让点击处理程序处理多个图像?相关代码如下:
$.fn.imageMapSetup2 = function () {
$('img').each(function () {
if (typeof ($(this).attr('usemap')) == 'undefined') {
return;
}
var img = $(this);
// add click handler
img.on('click', function (event) {
img.imgClick(event);
});
});
};
$.fn.imgClick = function (mouseDown) {
mouseDown.preventDefault();
var $img = this;
var map = $img.attr('usemap').replace('#', '');
$('map[name="' + map + '"]').find('area').each(function () {
var $this = $(this),
coords = $this.attr('coords').split(',');
// lots of scaling code omitted
if (mouseX >= left && mouseX <= right &&
mouseY >= top && mouseY <= bottom) {
window.location = $this.attr('href');
}
});
};
仅供参考,我已经在 Safari 中调试了代码,function imgClick()
没有为第二张和后续图片调用。
为图像的父元素添加一个点击事件侦听器。这可能是 body 元素。将事件作为参数传递。然后,检查事件,并使用该变量对图像进行更改。
document.addEventListener("click", function (event) {
if (!event.target.tagName === "img") return;
if (typeof event.target.getAttribute("usemap") == "undefined") {
return;
}
imgClick(event);
});