2010-06-11 55 views
5

我有寫的jQuery的代碼塊的一些事件如何刪除使用jquery創建的元素?

$('body').append(
tmp= $('<div id="tmp"></div>') 
); 

$('<div id="close" />').appendTo("#tmp"); 
$('<div id="box-results" />').appendTo('#tmp'); 

這三個元素通常被創建並添加到我的DOM後創建三個元素,但我想用這樣的一些功能將其刪除:

$("#close").click(function(e){ 

e.preventDefault(); 
$("#tmp").remove(); 
//$("#overlay").remove(); 
}); 

後,我點擊關閉div注意到發生!我的代碼有什麼問題?

這裏是在線例如:mymagazine.ir/index.php/main/detail/36 - 請找「這裏是jQuery的問題」,在現場句子,因爲網站的語言爲波斯語

回答

11

需要後加上#關閉單擊處理您插入元素進入文件。

編輯提供請求的演示;在FF36測試:

<html> 
<head> 
<title>whatever</title> 
<style type="text/css"> 
    div { 
    border: 1px solid black; 
    padding: 0.3em; 
    } 
</style> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() 
    { 
    $('body').append($('<div id="tmp"/>')); 
    $('<div id="close">click me</div>').appendTo("#tmp"); 
    $('<div id="box-results">contents</div>').appendTo('#tmp'); 
    $('#close').bind('click', function() 
    { 
     $('#tmp').remove(); 
     return false; 
    }); 
    }); 
</script> 
</head> 
<body> 
</body> 
</html> 

編輯

改變你的插件的從

$.ajax({ 
    ... 
    success: function() 
    { 
     $('<div id="close"/>').appendTo($('#tmp')); 
    } 
}); 
$('#close').click(function (e) ...); 

$.ajax({ 
    ... 
    success: function() 
    { 
     $('<div id="close"/>') 
      .click(function (e) ...) 
      .appendTo($('#tmp')) 
     ; 
    } 
}); 
+0

請你告訴我一些代碼?你的意思是像$(「#close」)。live('click',function(){});如果你的意思是它不起作用。 – mehdi 2010-06-11 13:04:55

+0

它不起作用。你測試這個嗎?它爲你工作?! – mehdi 2010-06-11 13:23:32

+0

@mehdi:他的回答完全適合我:http://bit.ly/aKEvbh – Matt 2010-06-11 13:29:15

2

您應該使用的,而不是點擊活法碼。它可以讓你因爲與IDS #tmp和元素是動態創建的添加/刪除,而不改變其行爲

$("element").live("click", function() { /*do things*/ }); 
3

,你不能對他們直接使用click,你需要的live()方法代替:

$("#close").live('click', function(e){  
    $("#tmp").remove(); 
    return false; 
}); 

Live()描述:

爲現在或將來匹配當前 選擇器的所有 元素附加事件處理函數。

可以看出,您的元素是動態創建(未來),而不是頁面加載時。

More Info Here

+0

生活是貶值 – Rahul 2013-12-31 23:23:35