0

DOM要素を追加し、要素がクローンオブジェクトである場合、要素のイベントを自動バインドしたい。コード スニペットは次のとおりです。

HTML:

<input type="button" class="clickme" value="Click Me" />​

Javascript:

$(document).ready(function(){
    $(".clickme").click(function(){
        alert("Clicked");
        var cloneElem = $(this).clone();
        //cloneElem.bind("click");
        cloneElem.attr("value", "Click Me" + $("input").length.toString());
        $(this).parent().append(cloneElem);
    });
});​

結果:

ここに画像の説明を入力

クリックするとClick Me1、次のようなイベントもトリガーされるはずですClick Me

Live function注:イベントをトリガーするために JQuery を使用したくありません。

4

4 に答える 4

9

.cloneイベントのクローンを作成するかどうかについても引数を取ります。

$(this).clone(true);
于 2012-05-24T08:05:26.573 に答える
1
$(document).ready(function(){
    function do_logic() {
        alert("Clicked");
        var cloneElem = $(this).clone();
        cloneElem.click(do_logic);
        cloneElem.attr("value", "Click Me" + $("input").length.toString());
        $(this).parent().append(cloneElem);
    }

    $(".clickme").click(do_logic);
});​
于 2012-05-24T08:06:44.653 に答える
1

すべてのハンドラーを複製したくない場合は、この例が機能するはずです。

$(document).ready(function(){
    $(".clickme").click(function(){
        alert("Clicked");
        var cloneElem = $(this).clone();
        cloneElem.click(function(){
           // code to be executed when you click cloned element.
        })

        //cloneElem.bind("click");
        cloneElem.attr("value", "Click Me" + $("input").length.toString());
        $(this).parent().append(cloneElem);
    });
});​
于 2012-05-24T08:11:16.730 に答える
0

複製された要素にもクリックイベントを追加する必要があります。

これを行う1つの方法..

$(".clickme").click(AddClone());

function AddClone() {
    alert("Clicked");
    var cloneElem = $(this).clone().click(AddClone());
    //cloneElem.bind("click");
    cloneElem.attr("value", "Click Me" + $("input").length.toString());
    $(this).parent().append(cloneElem);
}
于 2012-05-24T08:10:10.377 に答える