我正在使用 ajax 从我的 Google 云端硬盘上的电子表格中提取信息,然后使用以下代码以 HTML 形式显示它们:
我有这个 HTML:
<section class="p-booking" id="booking">
<div class="container">
<div class="row">
<div class="event-box">
<!-- caixas puxados do drive -->
</div>
</div>
</section>
还有这个 JS:
$.getJSON(url, function (data) {
var caixasEvento = [];
caixasEvento.push('<div class="col-md-3">');
caixasEvento.push('<div data-id="' + something + '" class="box">');
caixasEvento.push('<h1 class="day">' + something + '</h1>');
caixasEvento.push('<h1 class="local">' + something + '</h1>');
caixasEvento.push('<img class="local-img" src="' + image + '">');
caixasEvento.push('</div>');
caixasEvento.push('</div>');
$('.event-box').append(caixasEvento.join(''));
});
然后每次有人点击该框时我都需要发出警报:
$('.box').on('click', function() {
alert('test')
});
我在 html 文档底部使用了脚本链接标记。
该框通常会显示所有驱动器信息。
它不起作用。我相信这是与 ajax 相关的问题,因为如果我使用“box”类创建一个 div,警报就会起作用。
最佳答案
我猜测发生这种情况是因为当您尝试设置监听器时页面上不存在 box 元素。试试这个:
$('.event-box').on('click', '.box', function() {
// do stuff here
});
关于javascript - 使用ajax时,jquery on click事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27111649/