ajax调用更新DOM后,jQuery on click事件丢失
jQuery on click event is lost after DOM updated by ajax call
我有一些工作要做,但由于我不太习惯用JS编码,我不知道这是否是正确的方法。
我有一个简单的:
<div class="offers"></div>
通过调用myUrl
,我检索准备使用的HTML(一些.offer
div),然后将其append
转换为.offers
div。但我想在这些新添加的.offer
上有一个点击事件
$.ajax({
'url': myUrl,
success: function(data){
offers.append(data);
$('.offer').on('click', function(e) {
e.preventDefault();
$('.offers .offer').removeClass('selected');
$(this).addClass('selected');
});
}
});
感谢您的专业知识!
您可以简单地尝试:
$(document).on('click', '.offers .offer', function(e) {
// Code here
});
理想情况下,出于性能目的,用DOM上最接近的ID替换文档。
更新:在a.Wolff发表评论后,我删除了此处不需要的"document.ready"。(请阅读评论)。
将事件处理程序放在ajax之外:
$.ajax({
'url': myUrl
}).done(function(data){
var offers = $('.offers');
offers.append(data);
});
$('.offers').on('click','.offer' function(e) {
e.preventDefault();
$('.offers').find('.offer').removeClass('selected');
$(this).addClass('selected');
});
相关文章:
- 无法使以下ng on click outside指令在同一页面上的两个元素上工作
- jquery on click事件来显示内容
- jQuery.on-click事件不会发生
- 如何防止map.on(“click”)在触摸板上点击两次
- JavaScript on Click 事件在 img 标签上无法正常工作
- $('body').on('click', '.anything', f
- JQuery Click on Table
- Jquery fadeIn fadeOut on click (data attr)
- .on(“click”)不适用于生成的TD
- Change the title on click of <li>
- jQuery(document).on('click.classname'.......)?
- 将click触发器更改为on ready from事件
- JQuery Click on Div
- jQuery on Click on Click 在 iPhone(触摸设备)上不起作用
- Image swaping with click on <tr>
- jQuery - don't fire 'click' on 'mousemove
- Selenium click on javascript href
- 使用JavascriptExecutor来sendKeys + click on web元素
- web浏览器不调用click on span
- click on row jquery