2011-12-07 17 views
0

私はプラグインを構築しています。このプラグインには、どの要素を適切に設定するか(デフォルトは左に設定する)、アイデアはメニュー用に設定するオプションがあります。ユーザーは、最初のサブメニューと3番目のサブメニューが右側に浮動する必要があると言うことができますが、私はそれを動作させるように思える、私はそれが動作する1つの値を追加します。each()と組み合わせたjQuery inArrayの問題

//プラグインオプション

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

//ループあなたはoptではなくoを使いたいように見えます

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

"は動作しません" どのように?あなたの入力内容や何が起こったかなど、完全な例を挙げてください。 – Jon

+0

それぞれを使用するときにコールバック関数に渡される最初のパラメータは現在のインデックスなので、インクリメントする独自の 'i'を持つ必要はありません。 –

+0

私はインデックスについて忘れました;-) – user759235

答えて

2

?私はあなたがそれが適切に浮かべている場合は、クラスを追加したいと仮定していますよう

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

また、!==との比較を変更しますか?

例 - あなたは追加のインデックスを必要としない、あなたは、文字列'-1'int指数を比較しているhttp://jsfiddle.net/infernalbadger/JL7zx/

+0

申し訳ありませんが、私は速く入力しましたが、o = opt ;-)、はいこれは今、おかげさまで動作します! – user759235

1

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/