0

ボタンを複製するためにJquery liveを呼び出しています。ただし、このコードでは期待どおりの出力が得られません。誰かがここで何が間違っているのかを理解するのを手伝ってくれますか? Jqueryバージョン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 に答える