我正在尝试以下方法:
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")
这有可能吗?
答案 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');
}
);
});