Как поместить ссылку <a>в <span>, который находится в <a>? - PullRequest
1 голос
/ 30 мая 2011

Вот мой код

  <a href="http://linkurl" class="link" title="sometitle">
 text link 

 <span class="hidden-tooltip-data" style="display: none;"> <a
 href="http://www.google.ca"> my link here destroy everything </a 
</span>
  </a>

Я использую Poshy здесь скрипт

       $('.link').each(function() {
      var tooltip = $(".hidden-tooltip-data",this).html();
      $(this).attr("title","");
    $(this).poshytip({
    content: function(updateCallback) {
        return tooltip;
             }
         });
      });

Ответы [ 4 ]

4 голосов
/ 30 мая 2011

Вложенные ссылки недопустимы . Этот случай явно упоминается в спецификации HTML 4.01 .

1 голос
/ 30 мая 2011

Вы не должны ставить ссылку внутри другой ссылки.

1 голос
/ 30 мая 2011

Прежде всего, вы не должны этого делать.Причина заключается в том, что дочерний элемент a полностью игнорируется, поскольку он находится под родительским элементом a.

. Я предлагаю вам просто создать span, содержащий два разных тега a, которые содержатмного span по мере необходимости.

0 голосов
/ 30 мая 2011

По умолчанию Poshytip считывает атрибут title элемента и использует его в качестве содержимого всплывающей подсказки.Однако вы хотите включить ссылку во всплывающую подсказку, и размещение HTML в title будет выглядеть ужасно, если JavaScript отключен (и будет недоступен).

Лучше всего будет включить текстовыйтолько title для браузеров нижнего уровня и включает расширенное содержимое подсказки в атрибут data (явно избегая разметки):

<a href="..." class="link" title="basic content" data-tip="enhanced content &lt;a href=&quot;...&quot;&gt;link&lt;/a&gt;">...</a>

$('.link').each(function() {
    $(this).attr('title','').poshytip({ content: $(this).data('tip') });
});

Включение разметки в такой атрибуточевидно, это немного запутанно, поэтому, если ваши советы имеют общий формат, возможно, было бы лучше включить URL-адрес в качестве атрибута data и создать разметку в сценарии.

$('.link').each(function() {
    $(this).attr('title','').poshytip({ content: '<a href="' + $(this).data('tiplink') + '">link</a>' });
});
...