此代码未按预期运行:
function makeToken()
{
var $span = $("<span>new</span>");
$span.bind('click',function(){
alert('test');
})
return $span;
}
$('h1, #content p, #content h2').after(makeToken());
Span元素将出现在所有这些元素之后('h1,#content p,#content h2')但是当我单击跨度时,不会触发click事件。为什么不?解决方案是什么?
答案 0 :(得分:1)
使用live()
代替bind()
。
答案 1 :(得分:0)
附加了您创建的<span>
元素的克隆。它应该执行.clone(true)
,因此也可以克隆处理程序。
看起来像一个错误,但似乎已在jQuery 1.5
修复。
示例: http://jsfiddle.net/7PUew/1/
您可以使用事件委派而不是直接绑定,但需要更多信息才能知道最佳方法。