jQuery - `on`事件在jQuery.replaceWith之后不起作用

and*_*dyf 8 jquery

我想要一个这样的链接:当它被点击时,它会变为文本,当鼠标移出文本时,它会返回链接.

HTML:

    <a href="#">click me and change to text</a>
Run Code Online (Sandbox Code Playgroud)

JS:

    $("a").on('click',function(){
        var $lnk = $(this);
        var $replace = $('<span>');
        $replace.text($lnk.text());
        // Link to Text
        $lnk.replaceWith($replace);
        // Text to Link
        $replace.one('mouseout',function(){
            $replace.replaceWith($lnk);
        });
        return false;
    });
Run Code Online (Sandbox Code Playgroud)

该代码仅适用于第一次.似乎$("a").on("click",function(){})没有工作replaceWith.

小提琴:http://jsfiddle.net/uABC9/4/

我正在使用jQuery 1.10.1并测试了FF和Chrome.请帮忙.

Cla*_*edi 15

更换

$("a").on('click',function(){
Run Code Online (Sandbox Code Playgroud)

通过

$(document).on('click','a',function(){
Run Code Online (Sandbox Code Playgroud)

所以你可以使用委派的事件.这样做,您的处理程序将申请将来可以创建的锚元素,这是您在执行时从文档中删除锚点所需要的replaceWith

DEMO

有关委派事件的更多细节在这里(检查部分"直营和委托事件")