【发布时间】:2019-02-25 05:46:56
【问题描述】:
在产品页面上,客户可以从不同的变体中进行选择。在“选择”元素中,存储了所有变体。该元素被隐藏,不显示。因此,用户可以使用所有花哨的东西(如样本和其他有趣的东西)来选择变体,但实际上它只是一个“选择”元素,用于跟踪正在使用的变体。它的值是变体 id。
我附上了一张图片,以便更清楚地了解发生了什么。
目标:在变体更改时获取变体 ID。
问题:我无法检测到此选择的更改事件元素。
限制:我不允许触摸此代码的 HTML。我只能在运行时在此页面上的 <head> 标记中附加一个 javascript 文件,并且我需要检测该脚本中的 change 事件。
$(document).ready(function(){
$('body').on('change', "select[name='id']", function(){
console.log('here');
});
});
我可以随时使用下面的代码获得它的价值。
console.log($("select[name='id']").val());
有什么想法说明为什么 change 事件不会被检测到?
【问题讨论】:
-
您是否尝试过使用 select id 代替?所以,
#ProductSelect -
id 不断变化……唯一保持不变的属性是
name="id"。它遵循 Shopify 主题的约定。 -
"The fancy things" 可能是通过使用不会触发
change事件的.val方法设置选择的值。 -
是的。我也想过。如果他们正在更改值,则必须手动触发更改事件。
trigger('change')就像这样。而且很可能他们没有这样做。那样的话,就这样结束了吗? -
该网站使用shopify。我认为这是主文件:cdn.shopify.com/s/files/1/1715/0827/t/5/assets/…。几个库的巨大捆绑。你为什么不听按钮的点击事件呢?然后就可以得到select事件的对应值了。
标签: javascript jquery html select