0

Jquery live is calling in order to duplicate buttons. However this code doesnt give me expected output. Can someone help me to understand what's the wrong here. Im using Jquery version 1.10.2

//HTML

<body>

<input class="duplicate" type="button" value="Click" />

<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="js/ext.js"></script>

</body>

//JQuery

$(document).ready(function(){
    $('.duplicate').live({
        click: function(){
            alert('you have clicked');
            $(this).after('<input class="duplicate" type="button" value="Click"/>');
        }
    });
});
4

1 回答 1

2

首先,不要使用 live(),它已被弃用。而是使用 on() 方法,并将事件委托给容器内的 .duplicate-element。其次,您可以使用 .clone() 来制作元素的副本,而不是再次输入所有标记。

 $('.container').on('click', '.duplicate', function(e) {
    var $this = $(this),
        clone = $this.clone();

    $this.after(clone);

    e.preventDefault();
 });

小提琴:http: //jsfiddle.net/W7ty8/2/

于 2013-07-29T14:38:16.293 回答