var $content = $('#SomeDivContainingTwoImages');
$content.children().each(function(i){
$(this).showImage = showImageStatic;
$(this).showImage();
});
返回
Uncaught TypeError: Object #<Object> has no method 'showImage'
跑步时这在每个迭代器的jquery之外工作,即如果我只将它应用于单个元素。怎么了?
答案 0 :(得分:4)
每次调用$(this)都会重新创建一个jQuery对象。
这应该有效:
$content.children().each(function(i) {
var $this = $(this);
$this.showImage = showImageStatic;
$this.showImage();
});
但我认为这不是处理它的好方法。你可以直接调用showImageStatic():
showImageStatic.call($(this));
答案 1 :(得分:3)
$(this)
每次都会创建一个新实例
第二个$(this)
没有您添加到第一个的方法。
答案 2 :(得分:0)
我不认为这是添加功能的正确方法,你应该这样做
$.fn.extend({ "showImage" : showImageStatic });
它应该允许你正确调用showImage()。