特定のクラスに属するすべての要素を取得するために Jquery $.each を使用していますが、それらのそれぞれに対して次々に関数を呼び出したいと考えていました。これを実現するために、次の関数を呼び出しました。
var elements = $('.colorpickerHolder');
elements.each(self.ApplyColorPicker());
実行時に、要素には正しい 3 つの要素があることがわかります。ここで、self.ApplyColorPicker を呼び出すと、現在の各要素を $(this) で参照しています。驚いたことに、 $(this) は現在の要素ではありません。
私のコードはノックアウト フレームワークで動作しており、コードの両方の部分は viewModel の下にあります。ApplyColorPicker $(this) 内で、私のビューモデルになります。なぜだかわかりません。何か理由はありますか?
以下は、レビューの私の ApplyColorPicker コードです。
self.ApplyColorPicker = function () {
$(this).ColorPicker({
color: '#0000ff',
onShow: function (colpkr) {
$(colpkr).fadeIn(500);
return false;
},
onHide: function (colpkr) {
$(colpkr).fadeOut(500);
return false;
},
onChange: function (hsb, hex, rgb) {
$(this).css('backgroundColor', '#' + hex);
}
});
};