Почему бы вам не переместить <img>
за пределы тега <a>
?(Если вы хотите, чтобы он работал для пользователей клавиатуры, вы должны присвоить ему собственный тег <a>
и поставить метку на <a>
.)
Кроме того, какой смысл в <div>
?Что позволяет вам делать то, что вы не можете сделать с существующим <a>
?
РЕДАКТИРОВАТЬ: Если вы должны иметь элемент 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()
и / или cancelBubble
.)
Кстати, что за попытка включить переменную в середину строки здесь: "javascript:printStoreMap('+ e[0] +');"
(Если бы везде были двойные кавычки,или весь блок HTML является частью какого-либо строкового назначения с одиночными кавычками, которые вы не опубликовали, или ...?) Обратите внимание, что вам не нужно слово javascript
при назначении обработчика событий.