【发布时间】:2021-12-10 21:22:58
【问题描述】:
我正在尝试在 WooCommerce 购物车页面上运行一个简单的循环。 页面最初加载时,该功能会执行此操作,但在更新购物车时,它变得毫无生气。
这是我的循环函数:
let radios = document.querySelectorAll( 'input[name="radio_options_set"]' );
simplySetAttrs();
function simplySetAttrs() {
// I started the var at 1 to skip the first radio input
for (var xx = 1; xx < radios.length; xx++) {
radios[xx].setAttribute( 'onclick', 'dothisFunction( this );' );
}
}
唯一显示任何响应的 WooCommerce 事件是 'updated_cart_totals',而我在购物车页面上定位的单选按钮是由另一个插件插入的。
我是这样实现的:
jQuery( document.body ).on( 'updated_cart_totals', simplySetAttrs() );
我无法弄清楚为什么最基本的循环不采取行动。如果我执行 alert(),它会按预期工作,即使在设置超时之后也是如此。
我也尝试添加不同的事件侦听器作为设置属性的替代方法,但无济于事。
【问题讨论】:
-
尝试控制台
radios并检查是否有任何问题。 -
会不会是你用错了setAttribute?看这个例子:stackoverflow.com/a/362634/11592836
-
@Bhautik - 是的,
radios的节点列表确实被记录了。 -
可以分享一下网址吗?
-
@Allart - 我从您发送的链接中找到了前进的方向,并将其与我的问题的答案相结合。这是这个答案中给出的解释:link。谢谢。
标签: javascript jquery woocommerce hook-woocommerce