Javascript变量出现在控制台中,但未定义
我的模板没有回调函数,我可以调用它来获取库存。它将带有变量ID的URLSeacrchParam添加到URL 我设法捕获那个变量id并在控制台中显示它(请参阅:单击选项),我必须使用超时,因为在参数更新之前需要几毫秒的时间 但是我无法让脚本的第二部分工作,因为may currentVariant变量显示“undefined” 目标是取消隐藏给定变量的清单Javascript变量出现在控制台中,但未定义,javascript,jquery,shopify,Javascript,Jquery,Shopify,我的模板没有回调函数,我可以调用它来获取库存。它将带有变量ID的URLSeacrchParam添加到URL 我设法捕获那个变量id并在控制台中显示它(请参阅:单击选项),我必须使用超时,因为在参数更新之前需要几毫秒的时间 但是我无法让脚本的第二部分工作,因为may currentVariant变量显示“undefined” 目标是取消隐藏给定变量的清单 $(".option-value-input").click( function() { console.log("clicked...
$(".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");
}
});
})) 这是一个典型的异步编码错误。您的代码在变量赋值之前执行,因为它不会等待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中添加了完整的代码,以便在您希望它运行时运行。还要检查此条件
currentVariant===variantsIDs
将字符串与URLSearchParams进行比较