(function($) {
return $.extend($.fn, {
link: function(o) {
return $(this).find(":input").each(function() {
var el, name;
el = $(this);
name = el.attr("name");
o.bind("change:" + name, function() {
// do stuff
});
return $(this).bind("change", function() {
// do stuff
});
});
}
});
})(jQuery);
其他函数里面有很多函数。我的主要问题(4是我试图通过理解这段代码来弄清楚的):
- 扩展 $.fn 并返回该值是什么意思?
- 这段代码运行的顺序是什么?如果我将 console.log 作为每个循环的第一行,我看不到它已执行,但如果我将它放在“//do stuff”部分中,我会看到它。
- 如果我在每个语句中并查看 $(this).find(":input") 的值,这会给我当前循环的元素的值吗?
- 我试图将 ":input" 更改为 "p" 但我仍在输入元素上输入 "//do stuff" 块。如果我将选择器更改为添加 .filter 或 .not,当我认为我不应该这样做时,我仍然会在输入“//do stuff”块时中断 - 这是基于所有内容执行的顺序的预期结果在?如果元素有某个类,我只想“//做东西”怎么办?