как работать Изображение клик внутри тега привязки - PullRequest
0 голосов
/ 22 августа 2011
<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.и если я нажму на Print Map image, то должно произойти что-то еще, и событие click тега привязки не должно работать, значит, оно не должно перейти на страницу xyz.php.только эта функция JavaScript должна работать.

Как я могу это сделать?Я не понимаю этого.Так что, если у кого-то есть идеи, как я могу это сделать, то, пожалуйста, расскажите об этом.

1 Ответ

0 голосов
/ 22 августа 2011

Почему бы вам не переместить <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 при назначении обработчика событий.

...