我无法让click事件适用于这样创建的元素。
http://jsfiddle.net/iambriansreed/PEZXa/
的jQuery
$('<a href="#">a</a>', {
click: function(){
alert('a clicked');
}
}).appendTo("div");
$('<span>span</span>', {
click: function(){
alert('span clicked');
}
}).appendTo("div");
请不要向我展示将onclick
事件添加到元素的50种不同方法我想知道为什么这个特定方法有效或无效。
答案 0 :(得分:6)
$('<a />', {
href: '#',
text: 'a',
'click': function(){
alert('a clicked');
}
}).appendTo("div");
$('<span />', {
text: 'span',
'click': function(){
alert('span clicked');
}
}).appendTo("div");
来自文档
html - 定义单个独立HTML元素的字符串(例如&lt; div /&gt;或&lt; div&gt;&lt; / div&gt;)。
答案 1 :(得分:5)
当像这样创建的元素包含文本节点或属性时,jQuery似乎不喜欢它。实质上,您提供的HTML代码应该是单个(可能是自动关闭)标记。
这可能是因为您使用的语法要求在object参数中定义属性,而不是在HTML和对象之间混合。
无论如何,这段代码对我有用:
$('<a /> ', {
href: '#',
text: 'a',
click: function() {
alert('a clicked');
}
}).appendTo("div");
$('<span />', {
text: 'span',
click: function() {
alert('span clicked');
}
}).appendTo("div");
答案 2 :(得分:4)
这应该有效:
$('<a/>', {
href: "#",
text: 'a',
click: function(){
alert('a clicked');
}
}).appendTo("div");
答案 3 :(得分:3)
jQuery(html, props)
是一个没有其他属性或子元素的裸标记时, html
才有效。