点击事件不会在添加后的跨度上触发

时间:2011-02-09 00:06:41

标签: jquery events click html

此代码未按预期运行:

    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事件。为什么不?解决方案是什么?

2 个答案:

答案 0 :(得分:1)

使用live()代替bind()

答案 1 :(得分:0)

附加了您创建的<span>元素的克隆。它应该执行.clone(true),因此也可以克隆处理程序。

看起来像一个错误,但似乎已在jQuery 1.5修复。

示例: http://jsfiddle.net/7PUew/1/

您可以使用事件委派而不是直接绑定,但需要更多信息才能知道最佳方法。