我正在使用 Jquery $.each 来获取属于特定类的所有元素,并且我想在每个元素上一个接一个地调用一个函数。为了实现这一点,我调用了以下函数:
var elements = $('.colorpickerHolder');
elements.each(self.ApplyColorPicker());
我可以在运行时看到元素具有三个正确的元素。现在,当我调用 self.ApplyColorPicker 时,我使用 $(this) 引用每个当前元素。令人惊讶的是, $(this) 不是当前元素。
我的代码在淘汰框架下工作,两段代码都在 viewModel 下。并在 ApplyColorPicker $(this) 内部成为我的 viewModel。我不确定为什么会这样。有什么道理吗?
下面是我的 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);
}
});
};