我在链接列表中使用以下代码,根据用户指向的语言翻译其标题。例如,如果用户指向中文图标,则“文章标题”将替换为其中文版本。鼠标关闭后,标题将恢复为英语。这很好用。
我遇到问题的地方:有时我需要在同一行的“文章标题”之后添加另一个链接。每当我这样做时,脚本会在空白和默认之间发生恐慌并轻弹标题,因为它正在查找链接,但它并没有告诉它改变任何内容。
如何为此脚本添加例外?如何检查链接是否具有类“foo”,如果有,请忽略它?
$.each($("li"), function(i, elements) {
var links = elements.getElementsByTagName("a");
var article_title = elements.getElementsByClassName("article-title")[0];
$.each(links, function(j, link) {
var previous_title = article_title.innerHTML;
link.addEventListener("mouseover", function() {
$(article_title).fadeTo(200, 0.5, function(){
article_title.innerHTML = link.title;
$(article_title).fadeTo(200, 1, function(){});
});
});
link.addEventListener("mouseout", function() {
$(article_title).fadeTo(300, 0.5, function(){
article_title.innerHTML = previous_title;
$(article_title).fadeTo(300, 1, function(){});
});
});
});
});
答案 0 :(得分:1)
jQuery有一个名为hasClass(className)
的内置函数。只需使用它来查看a
元素是否具有该特定类。
$.each($("li"), function(i, elements) {
var links = elements.getElementsByTagName("a");
var article_title = elements.getElementsByClassName("article-title")[0];
$.each(links, function(j, link) {
var previous_title = article_title.innerHTML;
if (!$(link).hasClass("foo")) {
link.addEventListener("mouseover", function() {
$(article_title).fadeTo(200, 0.5, function(){
article_title.innerHTML = link.title;
$(article_title).fadeTo(200, 1, function(){});
});
});
link.addEventListener("mouseout", function() {
$(article_title).fadeTo(300, 0.5, function(){
article_title.innerHTML = previous_title;
$(article_title).fadeTo(300, 1, function(){});
});
});
}
});
});
只需更换课程" foo"在上面的示例中,您希望忽略链接的实际类名。