Javascript jQuery:悬停时临时删除元素标题属性
我创建了工具提示来替换默认的浏览器“标题”气泡。我已经阅读了很多帖子,它们都建议我应该暂时删除Javascript jQuery:悬停时临时删除元素标题属性,javascript,jquery,tooltip,syntax-error,title,Javascript,Jquery,Tooltip,Syntax Error,Title,我创建了工具提示来替换默认的浏览器“标题”气泡。我已经阅读了很多帖子,它们都建议我应该暂时删除mouseover上的title,以后再打开。我正试着做那件事,但我做不到。这是我的代码,我之所以使用jQuerylive,是因为我想在以后将效果应用于动态添加的元素: tooltip : { activate : function(selector){ $(selector).each(function(){ $(selector).live('mous
mouseover
上的title
,以后再打开。我正试着做那件事,但我做不到。这是我的代码,我之所以使用jQuerylive
,是因为我想在以后将效果应用于动态添加的元素:
tooltip : {
activate : function(selector){
$(selector).each(function(){
$(selector).live('mouseover',function(e){
tooltip.init(this,true,e);
});
$(selector).live('mouseout',function(e){
tooltip.init(this,false,e);
});
});
},
init : function(elem,show,e){
var title = $(elem).attr('title');
this.addTip(elem,show,title);
...
},
addTip : function(elem,show,title) {
var code = '<div class="tooltip-wrapper">'+title+'</div>';
if(show) {
$(elem).after(code);
setTimeout('$(".tooltip-wrapper").fadeIn("slow")',500);
}
else {
$(".tooltip-wrapper").remove();
}
}
}
我遇到的另一个问题是,如果我尝试此工具提示,它会给我层次结构\u请求\u错误:DOM异常3
错误
,但如果我使用input
作为选择器,它会工作
任何意见都将不胜感激:-)我只想指出几个问题:
- 在
内部使用
,每个live
在现有元素上循环,而不是在将来的元素上循环李>都会破坏
的理念<代码>每个live
- 但无论如何,你这样做是错误的。您应该删除
(在每个
中),因为激活
已经应用于多个元素。因此,在您的示例中,如果有N个元素,那么将添加N次相同的事件侦听器活动
适用于所有元素,这可能非常低效。试试*
(适用于具有[title]
属性的元素)title
- 如果在悬停时临时删除标题,则标题没有意义(因为它仅在悬停时显示)。如果要基于title属性创建改进的工具提示,请在第一次遇到title属性时读取该属性,并将其用于工具提示
- 您可能应该使用
和mouseenter
而不是mouseleave
和mouseover
。如果具有标题的元素具有子元素,则当鼠标进入/移出子元素时,您希望工具提示保持显示mouseout
- 像这样的东西怎么样
addTip : function(elem,show,title) { var code = '<div class="tooltip-wrapper">'+title+'</div>'; if(show) { $(elem).after(code); $(elem).removeAttr('title'); setTimeout('$(".tooltip-wrapper").fadeIn("slow")',500); } else { $(".tooltip-wrapper").remove(); $(elem).attr('title',title); } }
您正试图向addTip:function(元素、显示、标题){ var代码=“”+标题+“”; 如果(显示){ $(元素)。在(代码)之后; $(elem).removeAttr('title'); setTimeout(“$”(“.tooltip wrapper”).fadeIn(“slow”)”,500); } 否则{ $(“.tooltip包装”).remove(); $(elem).attr('title',title); } }
追加内容。请参阅您正在引用的文档
错误?我会纠正的。这似乎是不可能的,我们确定elem是正确的选择者吗?层次结构\u请求\u错误:DOM异常3
addTip : function(elem,show,title) { var code = '<div class="tooltip-wrapper">'+title+'</div>'; if(show) { $(elem).after(code); $(elem).removeAttr('title'); setTimeout('$(".tooltip-wrapper").fadeIn("slow")',500); } else { $(".tooltip-wrapper").remove(); $(elem).attr('title',title); } }
- 但无论如何,你这样做是错误的。您应该删除