2012-05-24 25 views
0

追加新元素(克隆對象)我想要自動綁定元素事件如果我追加元素到DOM和元素是克隆對象。下面是代碼片段:我想要刷新DOM如果內部html

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); 
    }); 
});​ 

結果:

enter image description here

如果我點擊Click Me1那麼它也應該觸發事件這與Click Me類似

注意: 我不想使用JQuery的Live function來觸發事件。

回答

7

.clone需要一個參數是否要克隆事件以及:你必須點擊事件添加到克隆的元素也

$(this).clone(true); 
+0

完美的+1從我身邊:) – Jashwant

+0

完美..我不知道這..從我身邊+1 .. – gsagrawal

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); 
});​ 
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); 
} 
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); 
    }); 
});​