jQuery .on() method doesn#39;t see new elements(jQuery .on() 方法看不到新元素)
问题描述
我正在获取一个 JSON 元素并从它的项目中构建一个列表,如下所示:
I'm getting a JSON element and building a list from its items like this:
getTitles: function(data) {
data = data || {};
var list = [];
$.getJSON(
'/titles',
data,
function(data) {
$.each(data.data, function(key, val) {
list.push(
'<li><a href="'+ val.href +'">'+ val.title +'</a><span class="count">'+ val.count +'</span></li>'
)
});
$('#title-items').html(list.join(''));
}
);
}
我正在为 a
元素绑定点击事件,如下所示:
And I'm binding click event for a
elements like this:
$('a').on('click', function(e) {
alert('clicked');
e.preventDefault();
});
旧的 a
元素显示警报,但新元素跟随 URL.事件处理程序不适用于新的.我该如何解决这个问题?
Old a
elements shows alert but new ones follow URL. Event handler doesn't work for new ones. How can I solve this?
推荐答案
您没有使用正确的代码来获得 live 功能.
You are not using the correct code to get live functionality.
$('#title-items').on('click', 'a', function(e) {
alert('clicked');
e.preventDefault();
});
- 首先,选择您的共同祖先元素(本例中为
#title-items
).如果你想处理 alla
元素,你也可以在这里使用document
. - 传递事件类型(
on
),然后子选择器(a
),然后是事件的回调函数.
- First, select your common ancestor element (
#title-items
in this example). You can usedocument
here too if you want to handle alla
elements. - Pass the event type (
on
), then the sub selector (a
), and then the callback function for the event.
现在,当 click
事件冒泡到 #title-items
时,它会检查元素是否是 a
元素,如果是,则触发回调.
Now, when click
events bubble up to #title-items
, it will check to see if the element is an a
element, and if so, fire the callback.
这篇关于jQuery .on() 方法看不到新元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:jQuery .on() 方法看不到新元素


基础教程推荐
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- 直接将值设置为滑块 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01