我的扩展程序如下:
$.fn.crazything = function() {
var self = $(this);
// do some crazy stuff
return self;
}
当我称之为:
$("div.crazydiv").crazything();
它有效,但仅限于第一个匹配的div。如果我在页面上有多个div,我需要这样做:
$("div.crazydiv").each(function(i) { $(this).crazything (); });
为什么会这样,我如何重写我的扩展以处理多个div?
答案 0 :(得分:6)
大多数jQuery插件都使用这种处理你疯狂东西的模式:
(function($) {
$.fn.crazything = function() {
// allow setup on jQuery objects that conatin multiple elements:
return this.each(function() {
// this function is called once for each element in the jQuery object
var self = $(this);
// do some crazy stuff
});
};
})(jQuery);