我正在尝试获取图片地图的HTML target/srcElement
元素的"area"
。
这是我到目前为止所得到的(原谅数据URI):
<map name="dpad">
<area id="dpad"shape="rect" alt="" title="" coords="1,14,12,24" onmousedown="move('l',false,event);" target="" />
<area shape="rect" alt="" title="" coords="15,2,24,12" onmousedown="move('u');" target="" />
<area shape="rect" alt="" title="" coords="27,15,38,24" onmousedown="move('r');" target="" />
<area shape="rect" alt="" title="" coords="15,27,25,38" onmousedown="move('d');" target=""/>
</map>
<img width="40"height="40"src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAADDElEQVRYR+2ZvYoiQRSFW1EMVkEzI2XfydQH2GwGDTfczFRYNNBBUDFQUFN9ATXQwEEDRQ3UB3ADQajpr7Gkp8f+k2G6F2bg0jVVt+qcrp9zb5cBxeVfMpmMnE6nX+fz+U8kEvkRCoUsR7hcLorq+0/1/R2NRv8ej8ezS0h37uFwOBEMBkupVErk83lRKBQsDR986UNfd2gPeAcCgYRqpUwmI+bzuTgcDjcbj8cC09fhgy996PsApLsukmA2mxWLxeJGhnKz2dTMWI+vpwRXq5XodDqi3W5rRpk6ZhKynhLc7XZiMBiIVqsler2eZpSpo81zgqPRSDQaDdHtdkW/39eMMnXsR08JTqdTUSqVRK1WE/V6/Z1RVy6XBT6eLTEzNJlMLA0fzwjqT6teWvRlT5f4myASnU6nI4SgqwA7ef5UfV+MQu1giV/UfvR1gpGAE9wUNYA/EyevSu/kCdDrAwRfeTGnOHCKxWLPipqNnAjmxEtAnVqxWBTr9fpd3L03i/jg63Rc/OACJ7gxg1pWQlBn0+sNDZNia2wDeL/f3wgSNWazmWaUJVl88DX253/GBsPYBhc4wU2Jx+NauqR/ewCIEIgwOme2v6jfbDZiOByKarWqCTZWqVS0UEebVV/GBgMs/UvRB05w+0CQIM/ghCrA7AhCjihCDJahjjJ1tNkRBAMsMGWCYUqQqSYTIdgTTwGxIshbM3N6cnqStG23W1OSjA0GWGCCLbX1wwyyH8jlSJckoB1B9hszIEkZn7ThYzaLkiD9wAQbDnD5/wjylsvl8lOXmMPidonh8GWHhI3/qYdEDsbmZx+Qz9md4nsyw+HgBDuRGTDAMpUZxDCXy5kKNQTviaxRqFlKKdT6ZbUSasY2E2o4aULt+1BHQPZ1suD7dMvdZ7uimH24O8gHvb1Z+CbodKn1Sywvi+yenn12omEIrUyZSJuk+eLDXWbFvr36gKDvL484vb6+fpPy4rsLTN9eAesv0ck47C7R8fnSS3R+hlDToCeV6Il0iE9DK8Pn6vtEX6d6K/3eAH0oKaUOiMCyAAAAAElFTkSuQmCC"usemap="#dpad"/>
因此,对于dpad上的左箭头,我有一个名为onmousedown
,move(dir,hold,e)
的函数。
这是开始的功能:
function move(dir,hold,e){
var p=document.getElementById('test');
alert(e);
}
当我点击该区域时,为什么我得到"undefined"
,这让我感到困惑。有人可以详细解释我如何获得目标吗?
我是否需要在我的HTML代码中包含'event'
作为参数?我甚至需要一个参数吗?
另一方面,这里有些让我很困惑的事情。
所以,我无法获得该元素的目标,但这很好用:
<div class="male1-d" id="test" data-sprite="male1" onclick="alert(event.target+' '+this.style.left+' '+this.style.top);"></div>
我忘了提到Opera,我的意思是移动版(?)版本9.50。
答案 0 :(得分:3)
在某些浏览器中,'event'是window的一个属性。但是你需要在其他浏览器中包含'event'作为参数。所以你的移动函数应该如下所示:
<html>
<body>
<button onmousedown='move(event)' id='btn' name='a button'>click</button>
</body>
<script>
function move(e){
var e=e||window.event;
var target=e.target||e.srcElement;
alert(target);
alert(target.id);
alert(target.name);
}
</script>
</html>
答案 1 :(得分:0)
看来,这是点击事件中的一个问题。 他们说,这是jquery中的一个bug。并在
中提供了详细信息Jquery click event of a div in li element not fired in mobile Safari
它说了两件事:
Add cursor:pointer to the DIV class.
Add onclick="" to the element