我在https://gambur.ch上的模板没有回调函数,我可以调用该函数来获取清单。它将带有变体ID的URLSeacrchParam添加到URL。
我设法捕获了该变体ID并在控制台中显示它(请参阅:https://gambur.ch/collections/reithosen/products/reithose-karen-black-onyx,单击选项)我必须使用超时,因为它需要几毫秒的时间才能更新参数... >
但是然后我无法使脚本的第二部分正常工作,因为currentVariant变量可能显示“未定义”
目标是取消隐藏给定变体的清单...
$(".option-value-input").click(
function() {
console.log("clicked...reading stock information");
setTimeout(
function() {
var currentVariant = new URLSearchParams(window.location.search);
console.log(currentVariant.get('variant'));
},
500);
$(".variantStock").each(function(){
var variantsIDs = $(this).data("id");
if(currentVariant === variantsIDs ){
$(this).removeClass("is-hidden");
}else{
$(this).addClass("is-hidden");
}
});
});
答案 0 :(得分:1)
这是一个经典的异步编码错误。您的代码会在变量赋值之前执行,因为它不会等待500毫秒。
$(".option-value-input").click(
function() {
console.log("clicked...reading stock information");
setTimeout(
function() {
var currentVariant = new URLSearchParams(window.location.search);
console.log(currentVariant.get('variant'));
$(".variantStock").each(function(){
var variantsIDs = $(this).data("id");
if(currentVariant === variantsIDs ){
$(this).removeClass("is-hidden");
}else{
$(this).addClass("is-hidden");
}
});
},
500);
});
我在setTimeout中添加了完整的代码,以使其在您希望运行时运行。