jQuery中的clone方法可以用來復制一個元素或一組元素,而且可以選擇是否復制事件處理程序。對于一個已經綁定了事件處理程序的元素,通過clone進行復制時,根據參數設置的不同,可以選擇是否復制該元素的事件處理程序。要復制元素上的事件處理程序,可以在clone方法中傳遞一個布爾值true作為參數,如下所示:
$(document).ready(function(){ // 綁定一個點擊事件 $("button").click(function(){ alert("clicked"); }); // 復制button元素及其事件處理程序 $("button").clone(true).appendTo("body"); });
在上面的代碼中,我們首先給button元素綁定了一個點擊事件,在點擊button時,會彈出一個提示框。然后,我們通過clone方法將button元素復制了一次,并將其添加到body元素中。由于在clone方法中傳遞了true參數,所以復制出來的新元素也繼承了原始元素上的事件處理程序,當點擊新元素時,也會彈出提示框。
如果不想復制元素上的事件處理程序,可以將clone方法中的參數設置為false或不傳遞參數。如下所示:
$(document).ready(function(){ // 綁定一個點擊事件 $("button").click(function(){ alert("clicked"); }); // 復制button元素,但不復制事件處理程序 $("button").clone().appendTo("body"); });
在上面的代碼中,我們將clone方法的參數設置為false或者不傳遞參數,這樣復制出來的新元素就不會繼承原始元素的事件處理程序了。