点击图像JavaScript检测每次实际点击的多次点击
我使用下面的Javascript打印用户单击的位置的坐标:点击图像JavaScript检测每次实际点击的多次点击,javascript,jquery,Javascript,Jquery,我使用下面的Javascript打印用户单击的位置的坐标: $(document).bind('click', function () { $('#clickimage').bind('click', function (ev) { var $img = $(ev.target); var offset = $im
$(document).bind('click', function () {
$('#clickimage').bind('click', function (ev) {
var $img = $(ev.target);
var offset = $img.offset();
var x = ev.clientX - offset.left;
var y = ev.clientY - offset.top;
var div = document.getElementById('clicklocations');
div.innerHTML = div.innerHTML + 'clicked at x: ' + x + ', y: ' + y + '<br>';
});
});
或者将其放在document.ready函数中每当您看到事件侦听器生成的重复输出时,您首先应该怀疑的是您多次将侦听器绑定到同一事件。在你的情况下,你就是这样做的 每次单击文档时,您的clickimage会附加一个侦听器
因此,重复性随着每次单击而增加这不是绑定单击事件的方法。从文档单击处理程序中删除图像单击处理程序。为什么需要文档点击处理程序?你的意思是document.ready吗?请,你能发布相关的HTML吗?而不是var$img=$ev.target;使用var$img=$this;
clicked at x: 225.5, y: 149
clicked at x: 151.5, y: 117
clicked at x: 151.5, y: 117
clicked at x: 321.5, y: 175
clicked at x: 321.5, y: 175
clicked at x: 321.5, y: 175
clicked at x: 241.5, y: 251
clicked at x: 241.5, y: 251
clicked at x: 241.5, y: 251
clicked at x: 241.5, y: 251
$(document).bind('click', function () {
$('#clickimage').bind('click', function (ev) {
var $img = $(ev.target);
var offset = $img.offset();
var x = ev.clientX - offset.left;
var y = ev.clientY - offset.top;
var div = document.getElementById('clicklocations');
div.innerHTML = div.innerHTML + 'clicked at x: ' + x + ', y: ' + y + '<br>';
});
});
$('#clickimage').bind('click', function (ev) {
var $img = $(ev.target);
var offset = $img.offset();
var x = ev.clientX - offset.left;
var y = ev.clientY - offset.top;
var div = document.getElementById('clicklocations');
div.innerHTML = div.innerHTML + 'clicked at x: ' + x + ', y: ' + y + '<br>';
});