使用jQuery.event检测单击的链接

时间:2009-10-29 20:59:51

标签: jquery events

我正在尝试以下方法:

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

console.log(event.target)给出了

<a href="view_repair.php">

但if语句中的代码没有运行。这是因为if语句与它给出的实际字符串进行比较 - 包括转义?

当我将 if 语句更改为:

if(event.target == event.target) 

我得到了理想的结果。

我真正希望能够做的是使用链接名称/标题进行比较,即(伪代码):

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

这有可能吗?

3 个答案:

答案 0 :(得分:1)

您正在尝试将DOM元素对象与其标记可能的外观的字符串表示进行比较,这些不相等。怎么样:

if(event.target.attr('href') == 'view_repair.php')

答案 1 :(得分:1)

尝试

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

这应该告诉你价值。

您可以测试您的值以与

进行比较
alert('<a href=\"view_repair.php\">');

答案 2 :(得分:1)

为什么不给链接一个title属性并从中提取工具提示文本,然后将其删除。然后,您不必对函数中的任何值进行硬编码。

 <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');
            }
     );
});
相关问题