2011-12-07 46 views
0

我正在構建一個插件,其中有一個選項,用戶可以設置哪個元素應該權利(默認是左),這個想法是菜單,它有一個選項用戶可以說,第一個子菜單和第三個子菜單應該浮動到右側,但我似乎無法讓它工作,如果我添加一個值它的工作原理,但一旦我添加更多的值它不起作用。jQuery inArray問題與每個組合()

//插件選項

var defaults = { 
    floatRight:  [1,5,6,9] 
} 
var opt = jQuery.extend(defaults, o); 

//循環

var i = 0 
$('li').each(function(){ 
    if((jQuery.inArray(i, o.floatRight)) == '-1'){ 
     // add class... 
    } 
    i++; 
}); 
+0

「不工作」 怎麼樣?給出一個完整的例子,包括你的輸入和發生的事情。 – Jon

+0

當使用每個參數時,傳遞給回調函數的第一個參數就是當前的索引,所以你不需要擁有自己的'i'即可以增加。 –

+0

我忘記了索引;-) – user759235

回答

2

它看起來像你想使用opt,而不是o

$('li').each(function(i){ 
    if((jQuery.inArray(i, opt.floatRight)) !== -1){ 
     // add class... 
    } 
}); 

而且,我假設你要添加的類,如果它是在右邊浮動改變比較!==

示例 - http://jsfiddle.net/infernalbadger/JL7zx/

+0

對不起,我輸入的速度很快,但o = opt ;-),是的,現在有效,謝謝! – user759235

1

你並不需要額外的指標,你是用繩子'-1'比較int指數。

var defaults = { 
    floatRight: [1,5,6,9] 
} 

$('li').each(function(index){ 
    if((jQuery.inArray(index, defaults.floatRight)) == -1){ 
     $(this).addClass('float'); 
    } 
}); 

代碼:http://jsfiddle.net/mtA4A/