我们在 Drupal 站点上获得了一个简单的 jQuery 脚本,它注入(inject)了一个包含内容的 div 类:
(function($) {
Drupal.behaviors.myHelpText = {
attach: function (context, settings) {
//code starts
//change placeholder text
$('.form-item-quantity').append('<span class="help-block">For orders over 10 call for volume pricing</span>');
$('.help-block').css("flex-basis", "100%");
//code ends
}
};
})(jQuery);
该页面具有 Drupal Commerce 和各种产品属性字段,每次选择属性时都会由 Ajax 处理这些字段。当这样做时,我们的脚本每次在 Ajax 加载/更新时都会注入(inject)相同的重复行。
如何避免这种情况?我们只希望 jQuery 代码在页面加载时工作一次。
最佳答案
仅在元素不存在时添加该元素,否则不执行任何操作。
(function($) {
Drupal.behaviors.myHelpText = {
attach: function (context, settings) {
if (!document.getElementById('help')) {
$('.form-item-quantity').append(
'<span id="help" class="help-block">For orders over 10 call for volume ricing</span>'
);
$('.help-block').css("flex-basis", "100%");
}
}
};
})(jQuery);
关于javascript - 防止Ajax触发jQuery脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55379607/