2016-08-24 47 views
0

HTML:如何爲動態添加的跨度元素分配點擊事件?

<div class="testSpanDiv"></div> 

的javascript:同時給予點擊跨越元素

$(document).ready(function() { 
     $('.testSpanDiv').append('<span id="testSpan">Hello</span>'); 
    } 

    $('#testSpan').on('click', function(){ 
     $(this).parent().remove(); 
    }); 

事件在不觸發動態添加。 如果將span元素靜態添加到html,則事件正在觸發。 你可以給它任何建議。

我也嘗試過像下面一樣,但不工作。

$('#testSpan').on('click', '.testSpanDiv', function(){ 
     $(this).parent().remove(); 
    }); 

回答

0

您需要使用這樣的:

 
$('.testSpanDiv').on('click', '#testSpan', function(){ 
    // ^^ parent div    ^^ element in which you want to bind the function 
     $(this).parent().remove(); 
}); 
+0

謝謝您的回答。 我是新來的UI設計,但即使在文檔加載的時候添加了疑問,爲什麼span元素不能被追蹤出來。它對我來說很奇怪。 任何鏈接或信息可評估。 –

+0

看到我已經用你的問題關閉的鏈接。 –

0

你的語法錯誤嘗試這種方式

$(document).ready(function() { 
     $('.testSpanDiv').append('<span id="testSpan">Hello</span>'); 


    $('#testSpan').on('click', function(){ 
     $(this).parent().remove(); 
    }); 
    }); 

https://jsfiddle.net/7x8jbLpt/

0

您可以從body

委託事件

還要注意有一些語法錯誤在你的代碼

$(document).ready(function() { 
     $('.testSpanDiv').append('<span id="testSpan">Hello</span>'); 
    }) 

    $('body').on('click', '#testSpan', function(){ 
     alert("Hello") 
    }); 

JSFIDDLE

相關問題