javascript - 自定义变体选择脚本冲突
问题描述
所以,我有一个自定义脚本来更改默认的 WooCommerce 变体选择,到目前为止一切都很好,问题是当变体缺货时,自定义选择应该具有与默认选择相同的选项。
上面自定义“选择”,下面默认。布兰科和 P 缺货。
我发现WooCommerce Variations JS以编程方式删除了缺货期权,但是当我的脚本在 Variations JS 之后运行时,我认为它应该可以工作。我设法让它工作添加一个 2000 毫秒的 setTimeout,但这太多了,它实际上破坏了我拥有的其他功能。如果有人知道如何解决这个问题,我将不胜感激。
$('.variations select').each(function(){
var select = $(this);
var div = $('<div class="grupo-atributos">');
var ul = $('<ul>');
select.parent('.value').siblings('.label').find('label').each(function(){
var label = $(this).text();
div.append('<span>'+label+'</span>');
});
$('#custom-select-produto-variavel').append(div);
div.append(ul);
select.find('option').each(function(){
var titulo = $(this).text();
var data_value = $(this).val();
ul.append('<li data-value='+data_value+'>'+titulo+'</li>');
select.change(function(){
select.find('option:selected').each(function(){
var opcao_selected = $(this);
select.find('option:not(:selected)').each(function(){
var opcao_not_selected = $(this);
$('#custom-select-produto-variavel li').each(function(){
var opcao_custom = $(this);
if(opcao_custom.attr('data-value')==opcao_selected.val())
opcao_custom.addClass('atributo-selected');
if(opcao_custom.attr('data-value')==opcao_not_selected.val())
opcao_custom.removeClass('atributo-selected');
});
});
});
}).change();
});
});
$('#custom-select-produto-variavel div ul li:contains("Escolha uma opção")').remove();
$('#custom-select-produto-variavel ul li').click(function() {
var novoVal = $(this).data('value');
$('.variations select:has([value='+novoVal+'])').val(novoVal);
$('.variations select').trigger('change');
});
<div id="custom-select-produto-variavel"></div>
解决方案
我发现变体选择的启动延迟为 100 毫秒,因此为了使我的脚本正常工作,我需要添加这些行。
$(document).ready(function(){
setTimeout(function(){
// My script
}, 150);
});
推荐阅读
- amazon-web-services - 无法在 amazon sagemaker 中创建笔记本实例
- c++ - 返回与返回参数类型相同的对象的 C++ 错误
- vb.net - 从 Excel VB 迁移到 VB.Net 文档定制
- post-processing - 如何更改 sRGB 图像的曝光?
- c++ - C ++在从文件中获取数据时使用strcpy和strcmp按字母顺序对数组进行排序?
- c++ - 代码不会处理任何异常
- multithreading - 如何为递归函数实现多线程
- javascript - 如何制作自定义 javascript 选择器?
- java - Android HttpUrlConnection 上传文件/多部分
- swift - 快速获取保存到照片库的照片