为什么功能在这里不起作用 - jquery?

时间:2013-10-11 10:15:11

标签: javascript jquery

我想复制id test元素中的span元素。我知道.clone工作正常。但如果我使用.html这样.click功能无效。我错了。我怎样才能使用.html()

来解决这个问题

HTML:

<div id="test">
    <span class="new">hi</span>    
</div>

<div id="test1"></div>

脚本:

function testtt (){

    $('#test').on('click','.new',function(){

        alert('hi');

    });

    var rr  = $('#test').html();

    $('#test').append(rr);

}    
testtt();

Code in fiddle

3 个答案:

答案 0 :(得分:3)

我对您的问题的理解是您希望单击处理程序应用于复制的span元素。

您需要更改on click事件的范围以覆盖克隆元素,如下所示:

HTML:

<div id="test" class="clickable">
    <span class="new">hi</span> 
</div>
<div id="test1" class="clickable"></div>

JS:

$('div.clickable').on('click','.new',function(){
    alert('hi');    
});

答案 1 :(得分:2)

它不起作用的原因是因为你将元素克隆到另一个选择器(#test1),但你只是看#test来监听click事件..

我就是这样做的:http://jsfiddle.net/ChubbyNinja/6fv4A/1/(使用你的两个ids)

http://jsfiddle.net/ChubbyNinja/6fv4A/3/使用类作为选择器,因为类可以多次使用..

答案 2 :(得分:0)

复制其html与克隆不同。在应用你的听众时你可能不太具体:

 $('body').on('click','.new',function(){...

http://jsfiddle.net/6fv4A/4/