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 functionJQuery 来触发事件。

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

您还必须将点击事件添加到克隆元素。

一种方法来做到这一点..

$(".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 回答