Использование jQuery.event для определения ссылки, по которой щелкнули - PullRequest
1 голос
/ 29 октября 2009

Я пытаюсь сделать следующее:

var showTooltip = function(event) {
if(event.target == "<a href=\"view_repair.php\">") {
$tooltip
  .text('View full repair details')
  .fadeIn('slow');
positionTooltip(event);

console.log (event.target) в Firebug дает

<a href="view_repair.php">

Но код внутри оператора if не выполняется. Это потому, что оператор if сравнивается с фактической строкой, которую ему дают - включая escape-коды?

Когда я изменяю оператор if на:

if(event.target == event.target) 

Я получаю желаемый результат.

Что я действительно хотел бы сделать, так это использовать имя / заголовок ссылки для сравнения, т.е. (псевдокод):

if(event.target.text() == "View")

Возможно ли это как-нибудь?

Ответы [ 3 ]

1 голос
/ 30 октября 2009

попробуй

alert('event target is:' + event.target);

Это должно сказать вам значение.

Вы можете проверить свою ценность для сравнения с

alert('<a href=\"view_repair.php\">');
1 голос
/ 30 октября 2009

Почему бы не присвоить ссылке атрибут заголовка и не извлечь из него текст подсказки, а затем удалить ее. Тогда вам не нужно жестко кодировать какие-либо значения в вашей функции.

 <a href="view_repair.php" title="View full repair details" class="tool">View</a>


 $('.tool').each( function() {
     var $this = $(this);
     var tip = $this.attr('title');
     $this.removeAttr('title');
     $this.hover(
            function(e) {
                $tooltip.text(tip).fadeIn('slow');
                positionTooltip(e);
            },
            function(e) {
                $tooltip.fadeOut('slow');
            }
     );
});
1 голос
/ 30 октября 2009

Вы пытаетесь сравнить объект элемента DOM со строковым представлением того, как может выглядеть его тег, которые не равны. Как насчет чего-то вроде:

if(event.target.attr('href') == 'view_repair.php')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...