我想知道是否在下面,生成jQuery 1.4方式的内容
$("<div />", {
"class": "loading",
"html": "some html code here"
}).appendTo("#elem");
或正常的“简单”方式更好。是否有任何表现或好处?
$("#elem").append("some html code here");
哦,我只想到了第一个的1个好处,我可以添加事件处理程序。这是唯一的好处吗?
var a = $("<a />", { href: "#", click: function() {}, text: "link text"});
在附注中,如果我想在某些内容中添加上述链接,我会做...
var a = $("<a />", { href: "#", click: function() {}, text: "link text"});
var div = $("<div />", { html: "here is some content " + a.html() + " here is more html" });
正确?
答案 0 :(得分:3)
您可以anything
方式添加1.4.x
:
$('<div/>', {
'class:' 'someclass',
css: {
width: '200px',
height:'200px'
},
click: function(e){
alert($(this).data('mydata'));
},
data: {
mydata: 'Yay!'
}
});
至于性能,我还没有对它进行基准测试,但我很难相信这比做
慢得多$('<div></div>').click(function(){}) // etc.
根据您要动态添加的标记,连接string literals
并添加一个html markup
块一次真的会更快。
在这种情况下,您需要使用.live()
或.delegate()
处理程序来event handlers
。
也许我在最后的方法中误解了你的目标。为什么要将jQuery
与event handler
一起构造一个元素,通过将html
字符串放入该div中来丢失所有信息?
您应该在此使用.append()
或.appendTo()
。
var a = $("<a />", { href: "#", click: function() {}, text: "link text"});
var div = $("<div />").append(a);