2010-08-28 36 views
0

換言之,我想說,如果身體Id不等於列表項的類執行以下函數,我試圖得到代碼正確,但似乎沒有任何工作。如何與變量說:如果這個ID匹配這個類別不要這樣做

我有4個頁面,每個都有一個ID,以使活動狀態工作在一個很好的css sprite中。最重要的是,我添加了常規和懸停jQuery不透明效果,但問題是,當我懸停活動狀態它也改變爲懸停,我希望活動精靈留在懸停時,anyhelp將不勝感激,Saludos。

HTML:

<ul id="nav"> 
    <li class="home"><a href="index.html" title="Home Page">Home</a></li> 
    <li class="portfolio"><a href="portfolio.html" title="Portfolio Page">Portfolio</a></li> 
    <li class="contact"><a href="contact.html" title="Contact Form Page">Contact</a></li> 
    <li class="about"><a href="about.html" title="About me Page">About me</a></li> 
    </ul> 

的Jquery:

$(document).ready(function(){ 

    // Get the ID of the body 
    var parentID = $("body").attr("id"); 

    // Loop through the nav list items 
     $("#nav li").each(function() { 

     // compare IDs of the body and class of list-items 
      var myClass = $(this).attr("class"); 

     // only perform the change on hover if the IDs don't match (so the active link doesn't change on hover) 
     if (myClass != "n-" + parentID) { 

    // Opacity effect between states 
    $('ul#nav li a').removeClass('hover'); 
    $("ul#nav li a").wrapInner("<span></span>"); 
    $("ul#nav li a span").css({"opacity" : 0}); 
    $("ul#nav li a").hover(function(){ 
     $(this).children("span").stop().animate({"opacity" : 1}, 500); 
    }, function(){ 
     $(this).children("span").stop().animate({"opacity" : 0}, 500); 
     }); 
     } 

    }); 

}); 
+0

似乎會說西班牙語。你想用西班牙文寫這個問題,然後我可以翻譯它嗎? – 2010-08-28 03:54:08

+0

謝謝巴勃羅,如果我有麻煩與喬希溝通,我會告訴你,D – Danilux 2010-08-28 06:57:15

回答

1

我不知道爲什麼你檢查<li>(胡)的類不是 '正parentId'。難道你不只是想把那些不是相同的作爲身體的ID?

限制<li>選擇器僅排除不希望類:

$(document).ready(function(){ 
    // Get the ID of the body 
    var parentId = $("body").attr("id"); 

    // Loop through the nav list items 
    $("#nav li[class!=" + parentId + "]").each(function(){ 
     // Opacity effect between states 
     $('ul#nav li a').removeClass('hover'); 
     $("ul#nav li a").wrapInner("<span></span>"); 
     $("ul#nav li a span").css({"opacity" : 0}); 
     $("ul#nav li a").hover(function(){ 
      $(this).children("span").stop().animate({"opacity" : 1}, 500); 
     }, function(){ 
      $(this).children("span").stop().animate({"opacity" : 0}, 500); 
     }); 
    }); 
}); 
+0

嗨喬希,謝謝你給我這一手。我是一個剛剛開始使用JavaScript的設計師,所以是的,我看到我瞄準的是錯誤的方式。所以你現在選擇所有具有不等於身體id的類的li並將該函數綁定到每個li,這是否正確? 我在那段代碼中遇到錯誤,也許我做了錯誤的事情,我甚至複製了代碼以查看是否錯過鍵入某個字符但仍顯示錯誤:http://cl.ly/29Vj 它說,即使變量是在開始時定義的,父Id也沒有定義,這很奇怪。 – Danilux 2010-08-28 06:55:20

+0

哎呦。我將變量指定爲'parentID',但隨後使用'parentId'(使用'd'小寫)調用它。現在修復。 – 2010-08-28 07:33:04

+0

是的,你在分析代碼時是正確的。 – 2010-08-28 07:33:35