2011-07-17 42 views
0

我真的很喜歡這個幫助......我正在爲投資組合項目構建一個濾鏡框。在if語句中匹配href類與div類

我有四個鏈接,每個都有一個類名,與他們的文本相同。所有投資組合項目都列出。每個投資組合項目都有一個div,其中包含兩個類 - .listItem和其中一個鏈接類。

例子:<a class="Architecture" href="#">

我想動畫上單擊DIV是:<div class="listItem Architecture">

這是我的腳本,it's不工作...

$(document).ready(function(){ 

    var filterTrig = $('#sortPort a').attr('class'); 

    $('#sortPort a').click(function() { 
     $('.listItem').each(function(){ 
      if ($(this).is(filterTrig)){ 
       $(this).hide(); 
      } 
     }); 

     return false; 
    }); 
}); 
+0

jQuery不是「不可能的」。 –

+0

你可以請澄清 - 你想隱藏div與匹配的類名或隱藏所有其他? – Mottie

回答

1

is()需要一個選擇器。你跟一個類名的工作,所以你可以使用hasClass()代替:

$(document).ready(function() { 
    $("#sortPort a").click(function() { 
     var filterTrig = $(this).attr("class"); 
     $(".listItem").each(function() { 
      if ($(this).hasClass(filterTrig)) { 
       $(this).hide(); 
      } 
     }); 
    }); 
}); 

你也可以用一段文字(.)前綴的類名,爲了把它變成一個類選擇,但如果錨元素公開多個類,則不起作用。

+0

什麼都沒有發生......我真的沒有得到這個。有沒有其他方法可以將這些div與鏈接的相同類名分開?我也嘗試過使用text(),試圖匹配div和錨的字符串來創建div上的動畫而不使用鏈接類名... –

+0

@Samuel,你只設置了一次'filterTrig',這就是可能是問題。查看我答案中的更新代碼。 –

+0

謝謝!我更多地使用代碼,並提出了一種不同的方式。它可能是巨大和醜陋的書面,但腳本的作品。包括所有的效果,像這樣(看到它住在1979design.se/portfolio):再次感謝! –

0

謝謝!我更多地使用代碼,並提出了一個不同的解決方案。它可能是巨大和醜陋的書面,但腳本現在工作。

包括所有的效果,它的這樣的(見直播在1979design.se/portfolio):

var listItem = $('.listItem') 
     var sp = 'currentSortPort' 
     $('#sortPort a.filter').bind(
      'click' , function(a) { 
       var trigger = $(this).html(); 
       var portType = '.listItem'+'.'+trigger; 
        $('h3').removeClass(sp); 
        $(a.target).parent().addClass(sp); 

       $(listItem).each(function() { 
        $(this).fadeTo('fast', 1); 
        $(portType).addClass('selected'); 
        $(this).not('.selected').fadeTo('medium', 0.1); 
       }); 
       $('.listItem').removeClass('selected');    
     return false; 
    }); 
    $('a.reset').click(function(b){ 
      $('h3').removeClass(sp); 
      $(b.target).parent().addClass(sp); 
      $(listItem).fadeTo('fast', 1); 
      return false; 
    }); 

再次感謝!你說得對,jQuery不是不可能的;)當新手完成時只有巨大的腳本