【发布时间】:2018-12-27 07:14:06
【问题描述】:
在一些 AJAX 查询中,在 response.done 中我刷新了一些 div 并且它工作正常,问题是这个刷新不刷新另一个函数(这个函数填充了另一个 div 内的内容 html() 刷新的) .我正在考虑一个技巧来添加一个 事件 以在该 div 重新加载时进行监听,我午餐我的 getAmount() 函数。
我尝试在 AJAX 中重新加载部分后添加该功能,但它不起作用。
file1.phtml
ajaxRequest = jQuery.ajax({
...
ajaxRequest.done(function (response, textStatus, jqXHR) {
jQuery("#shopping-cart-table").load(location.href + " #shopping-cart-table"); //Here I reload my div.
});
file2.phtml
function getAmount() {
var some = jQuery(this).attr('data-subtotal');
jQuery('#shopping-cart-table .data').each(function(){
jQuery('.ship-cart-vendor-header').each(function(){
jQuery(this).find('.not-reached').html(some);
});
});
}
【问题讨论】:
-
你可能想听听 DOM 的变化:stackoverflow.com/questions/3219758/detect-changes-in-the-dom.
-
如果你正在监听被替换的 dom 内部的变化,那么你的事件不会受到影响。看起来你想做的是不好的做法。我认为您应该替换 dom 中的元素,然后在 .done 函数中调用该事件。否则你可以添加 $('body').on('change', '.yourElementClass', function(){ ...在这里做点什么... });
-
您在
ajax成功处理程序中调用load。这将导致向服务器发送两个请求。不能直接用第一个AJAX-response吗? -
@feeela 我不明白你的问题
-
@Martin M 这个:
var priceed = jQuery(".price").html(); $('body').on('change', priceed, function(){ alert('changed');});不起作用
标签: javascript jquery events listener