2011-01-21 64 views
1

好了,所以我在重新創建此功能的過程:jQuery的新手,需要一點點幫助

http://www.w3.org/html/logo/#the-technology

我現在有它,所以當你點擊一個鏈接,它會添加一個類與該鏈接相關的圖像(<a>上的href =「#1」,然後在<img>上的id =「#1」),但是它目前不會經歷每個<a>標籤並且只有一個。而且它也不會刪除我要求的班級。

代碼如下:

JS

$(document).ready(function() { 

var container = '#portfolio #text_container'; 

var img_container = '#portfolio #image_container'; 

$(container).children('a').bind('click', function() { 

var this_attr = $(this).attr('href'); 

var this_img = $(img_container).find('img').attr('id'); 

if(this_attr == this_img) { 

    //$(img_container).find('img').hasClass('current').removeClass('current'); 

     // ^^^ This line isn't working, any ideas? :/ 

    $(img_container + ' img[id*="' + this_attr + '"]').addClass('current'); 

} 

else { 

    alert(this_img + ' this img'); 

     alert(this_attr + ' this attr'); 

} 

    }); 

}); 

和HTML如下

<div id="portfolio"> 

    <div id="image_container"> 
     <img src="http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif" alt="" class="current" id="#one" /> 
     <img src="http://static.jquery.com/files/rocker/images/btn_downloadLarge.gif" alt="" id="#two" /> 
    </div> 

    <div id="text_container"> 
     <a href="#one" class="link">Item 1</a> 
     <a href="#two" class="link">Item 2</a> 

     <p id="#one" class="current">A bunch of text!</p> 
     <p id="#two">The second bunch of text!</p> 
    </div> 

</div> 

請讓我知道如果你需要任何更多信息:)

rcravens fi用下面的代碼固定的這個..

JS

$(document).ready(function() { 


    $('#text_container a').click(function(evt) { 
     evt.preventDefault(); 

     $('.current').removeClass('current'); 

     var href = $(this).attr('href'); 

     $("." + href).addClass('current'); 


    }); 

和HTML ..

<div id="portfolio"> 

    <div id="image_container"> 
     <img src="http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif" alt="" class="one current" /> 
     <img src="http://static.jquery.com/files/rocker/images/btn_downloadLarge.gif" alt="" class="two" /> 
    </div> 

    <div id="text_container"> 
     <a href="one" class="link">Item 1</a> 
     <a href="two" class="link">Item 2</a> 

     <p class="one current">A bunch of text!</p> 
     <p class="two">The second bunch of text!</p> 
    </div> 

</div> 
+0

在這裏你可以看到一篇不錯的文章,說明[id和classes之間的區別](http://css-tricks.com/the-difference-between-id-and-class/) – Trufa 2011-01-21 20:10:11

回答

1

我的你正在嘗試做的解釋是在這裏:

http://jsfiddle.net/rcravens/wMhEC/

代碼有點改變。你不應該有多個具有相同ID的元素。

鮑勃

+0

哇,這很簡單:x是的,這正是我想要的 - 謝謝! :) – 2011-01-21 20:03:18

0

這是不工作的原因:

if(this_attr == this_img) 

是因爲this_attr是一個URL,this_img是一個ID屬性值。