<a href="xyz.php"><div id="some_id"><p>
<span class="storeName">name</span>
<span>phone number</span>
</p><img onclick="javascript:printStoreMap('+ e[0] +');"
alt="Print Map"
src="/images/btn_print_map.png"></div></a>
这是我的代码。
我想要的行为是,如果我应该点击div它应该去xyz.php。如果我点击打印地图图像比其他一些事情应该发生,锚标记的点击事件不应该工作意味着它不应该去xyz.php页面。只有javascript函数应该工作。
我该怎么做?我没有得到这个。因此,如果任何一个机构有想法我怎么能实现这一点,那么请亲切地说出来。
答案 0 :(得分:0)
为什么不将<img>
移到<a>
标记之外? (如果您希望它适用于键盘用户,您应该为其提供自己的<a>
标记,并将其点击<a>
。
另外,<div>
有什么意义?你能做什么,而现有的<a>
无法做到?
编辑:如果你必须拥有div元素 - 当你可以设置锚元素的样式时你真的不需要它来设置样式 - 并且你希望图像在同一个div中,那么为什么没有两个锚点,每个你想要点击的东西就有一个:
<div id="some_id">
<a href="xyz.php">
<p>
<span class="storeName">name</span>
<span>phone number</span>
</p>
</a>
<a onclick="printStoreMap('+ e[0] +'); return false;">
<img alt="Print Map" src="/images/btn_print_map.png">
</a>
</div>
同样,拥有两个锚点使其可用于键盘用户。
(否则,为了使您的HTML与完全一致,我认为这是一个坏主意,您可以阅读事件preventDefault()
,stopPropagation()
和/或{ {1}}。)
顺便说一下,尝试在一个字符串中间包含一个变量是什么:cancelBubble
(它应该是到处都是双引号,还是整个HTML块的一部分,用于某些字符串赋值您尚未发布的单引号,或者......?)另请注意,在分配事件处理程序时,您不需要单词"javascript:printStoreMap('+ e[0] +');"
。