[英]How can I trigger a click event on element generated dynamically in angular 4?
[英]How to trigger jquery click event for dynamically generated list
嗨,我正在嘗試使用jquery動態地用新列表替換已經創建的列表。 但是在新創建的列表上,我無法使用任何jquery事件。
我已經創建了球員名單
在單擊任何列表名稱時,它會警告其ID,然后使用jquery動態替換一個新創建的列表。
但是我無法為新創建的列表選擇click事件。 當我們單擊新動態列表的任何名稱時,它沒有在控制台中顯示任何錯誤,也沒有任何反應。
<html>
<head>
<script src="jquery-3.1.1.js"></script>
<script>
$(document).ready(function(){
$("#videoul li").click(function(){
var vocab_id = $(this).attr('id');
alert("Hi the ID is " + vocab_id);
var aaila = '<a href="#" id="i_am_link">Click me again</a><ul id = "videoul"><li id="Kohli">Virat</li><li id="Dhoni">M S</li><li id="Rahane">Ajinkya</li></ul>';
$('#videowrapper').html(aaila);
});
});
</script>
</head>
<body>
<div id="videowrapper"><a href="#abc" id="i_am_link">Click me</a>
<ul id="videoul">
<li id="Tendulkar">Sachin</li>
<li id="Ganguly">Sourav</li>
<li id="Dravid">Rahul</li>
</ul>
</div>
</body>
</html>
我現在一無所知,如何使它工作。
使用“ on”方法。 代替$(“ body”)選擇器,您可以使用其他不是動態創建的元素。
$('body').on('click', '#videoul li', function() {
var vocab_id = $(this).attr('id');
alert("Hi the ID is " + vocab_id);
var aaila = '<a href="#" id="i_am_link">Click me again</a><ul id = "videoul"><li id="Kohli">Virat</li><li id="Dhoni">M S</li><li id="Rahane">Ajinkya</li></ul>';
$('#videowrapper').html(aaila);
});
由於您提到了動態創建的元素,因此需要將事件委托與on
一起使用
查看此片段
$("body").on("click", "#videoul li", function(){ var vocab_id = $(this).parent().attr('id'); console.log("Hi the ID is " + vocab_id); var aaila = '<a href="#" id="i_am_link">Click me again</a><ul id = "videoul"><li id="Kohli">Virat</li><li id="Dhoni">M S</li><li id="Rahane">Ajinkya</li></ul>'; $('#videowrapper').html(aaila); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="videowrapper"><a href="#abc" id="i_am_link">Click me</a> <ul id="videoul"> <li id="Tendulkar">Sachin</li> <li id="Ganguly">Sourav</li> <li id="Dravid">Rahul</li> </ul> </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.