John Resig的文章发布于:
http://ejohn.org/apps/workshop/adv-talk/#3
说我可以使用object参数附加方法.
“文本”似乎工作得很好,但是对象中的其他任何内容都作为属性添加到了元素中.
我可以附加其他方法吗?
$("<li/>", {
click: function(){},
id: "test", // mix ids and jQuery methods
class: "clickable"
});
或这是解决方案?
$("<li/>")
.click(function(){})
.attr("id","test")
.addClass("clickable");
解决方法:
通过jQuery源代码,看起来@Neal几乎是正确的.看来使用语法
$(htmlCode, config);
相当于调用:
$(htmlCode).attr(config, true);
如果为true(未记录),则告诉.attr()调用在配置键中命名的jQuery函数(如果它们在$.attrFn中列出). $.attrFn列表(至少在jQuery 1.6.4中)包括以下功能:
val, css, html, text, data, width, height, offset, blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error
因此,config对象可以包含表示属性名称的键及其值(默认值),也可以包含上面列出的任何函数名称的键第一个参数.我认为Resig在配置对象中显示addClass作为键时会出现错字,因为您注意到,这只会产生一个名称为“ addclass”的属性.