如何在锚标签内工作图像clike

时间:2011-08-22 05:43:02

标签: php javascript image click anchor

<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函数应该工作。

我该怎么做?我没有得到这个。因此,如果任何一个机构有想法我怎么能实现这一点,那么请亲切地说出来。

1 个答案:

答案 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] +');"