2017-04-16 94 views
-3

.remove()無法從DOM中刪除匹配的元素,但元素存在於DOM中。.remove()在使用in.on()在jquery中時不起作用

 var $closeIcon = $("<i class='fa fa-times pull-right'></i>"); 

     $closeIcon.on("click", function() { 
      $blackOverlay.remove(); 
      $(".tour-block").remove(); 
     }); 

$ blackOverlay已經被刪除,但並不去除在DOM匹配元素「.tour塊」。

var $blackOverlay = $("<div class='black-overlay'></div>"); 

$("body").prepend($blackOverlay); 

注意:「.tour-block」元素是預先點擊的元素。

var $Block = $("<div class='tour-block requests'></div>"); 

$target.prepend($Block); 
+3

請附上您的HTML結構,並說明到底是什麼'$ blackOverlay' –

+0

您應該運行'的console.log($(「遊塊。」));'你的事件處理函數中,以確保它是匹配的東西。 – JAAulde

+3

請提供一個[mcve]重現問題 – charlietfl

回答

0

您沒有展示過很多代碼庫,但我會盡我所能提供幫助。

如果在運行期間沒有彈出錯誤,我的診斷是當執行$(".tour-block").remove()語句時,'.tour-block'元素不存在。請注意,大多數Jquery的操作在不匹配元素上執行時不會拋出錯誤。

檢查'.tour-block'元素在那一刻是否真的存在。使用這樣的東西,並檢查匹配的元素。

console.log($('.tour-block')); 

確保在文檔準備就緒後執行。

$(document).ready(function() { 
    // todo 
});