2013-10-14 78 views
0

我正在寫簡單的jQuery插件,它應該搜索頁面上的所有.camp_row,並且在它找到.log.active時,它應該更改其邊框。簡單的jQuery插件 - 引用錯誤?

$.fn.filtruj = function(){ 
    $(this).on('click', function(){ 
     var that = $(this); 
     $('.camp_row').each(function(){ 
      $(this).find(that).css('border','10px solid orange'); 
     }); 
    }) 
} 

$('.log.active').filtruj(); 

問題是,它只有一個結果。我認爲那是因爲「那個」是指特定的.log.active',但並非全部是.log.active

+0

'that'就像只有一個元素。你至少在'n'次設置'that'的css,其中'n'是'.camp_row'元素的數量。這沒有意義。 – MildlySerious

回答

1

如果我理解這個問題,你應該在構造函數中通過選擇,然後:

$.fn.filtruj = function(selector){ 

    $(this).on('click', function(){ 
    var that = $(this); 

    $('.camp_row').each(function(){ 
     $(this).find(selector).css('border','10px solid orange'); 
    }); 
    }) 
} 

$('.log.active').filtruj('.log.active'); 
+0

很好,它的工作原理。但是第一個和第二個「log.active」永遠都是一樣的。任何避免重複的選項? –

+1

不幸的是沒有...有一個棄用的屬性'選擇器',但它被刪除。文檔提出了這個解決方案。 http://api.jquery.com/selector/ –