2013-03-13 24 views
0

我對jQuery有點麻煩,希望你能幫助我。我認爲這很容易,但我真的不知道:-(如何從jQuery生成的鏈接運行jQuery函數(通過append())?

問題是,我通過jQuery append()函數編寫了一些內容,並且在這個內容中有一個鏈接,它應該運行我自己的功能,如果按下

例子是在這裏:。「!添加項目」 http://jsfiddle.net/5ahkD/2/

$(document).ready(function() { 
    $(".add").click(function() { 
     $("#items").append('<div id="item">\n\ 
        <a href="#" class="delete" id="delete">Delete!</a>\n\ 
        Some content inside div element...\n\ 
        </div>'); 
    }); 

    $(".delete").click(function() { 
     $(this).hide(); 
    }); 
    }); 

會產生一些內容與鏈接(「刪除」!),這鏈接應該點擊後消失正如你所看到的。在單獨的底部鏈接上,只有當這個鏈接不是通過append()寫入的時候纔可以...

這幾乎肯定是非常容易的,但我找不到任何獲得這項工作的方式。

+0

你只與類綁定到元素「刪除」是*目前*在DOM中,而不是未來添加的元素。 – 2013-03-13 20:23:08

回答

1

您必須將事件處理委託給頁面加載期間存在的元素。 jQuery提供的.on()方法就是這麼做的。

$(document).on('click', '.delete', function(){ 
    $(this).hide(); // will hide the delete 
    // $(this).parent().hide(); //will hide the .item 
}); 
+0

非常感謝,我明白這一點;-) – Tom 2013-03-13 20:41:02

0

使用Live event handlers。它將爲新創建/添加的元素

$("#items").on("click", ".delete", function() { 
    $(this).hide(); 
}); 

如果要實際刪除創建的行,利用工作:

$(this).parent().remove(); 
+0

感謝您的幫助:-) – Tom 2013-03-13 20:41:38