【发布时间】:2017-07-21 13:45:35
【问题描述】:
我在 Drupal 7 网站上有一个电子商务“添加到购物车”表单。
Development site can be found here
我将衣服尺寸显示为单选按钮。
当用户点击一个尺寸时,我使用 jquery 添加一个包装类,以便我可以突出显示选定的选项。 用户第一次点击大小时,jquery 会触发并获得我设置的橙色背景 - 但只是短暂的。我相信 ajax 调用正在刷新控件并且它正在丢失包装类。 再次点击相同的尺寸会使班级粘住。
我的 Jquery 很简单:
(function($) {
$(document).ready(function(){
$('body').on('click','.commerce-add-to-cart .form-radios input',function(){
$(this.parentNode).removeClass('radio-checked');
$(this.parentNode).addClass('radio-checked');
});
});
})(jQuery);
所以,我的问题是 - 在 ajax 触发后如何重新调用我的 jquery 函数? 是否有一个我不知道的钩子在 ajax 调用后被触发,或者是否有某种 Jquery 命令可能有帮助? 我尝试了 .setTimeout 、 .pause 和其他几个变体,但都没有成功。
【问题讨论】:
-
你可以使用
ajaxStopapi.jquery.com/ajaxStop ,这可以让你知道页面的所有ajax查询何时完成,然后第二次执行你想要的(使用参数来捕获你的ajax)或者您可以使用ajaxCompleteajaxComplete api.jquery.com/ajaxComplete ,让您在每个 ajax 完成后处理