检测隐藏的选择元素上的更改事件

awe*_*san 5 html javascript jquery select

在产品页面上,客户可以从不同的变体中进行选择.在"选择"元素中,存储所有变体.隐藏此元素,显示无.因此,用户可以选择使用所有花哨的东西,如色板和其他有趣的东西,但在引擎盖下它只是一个"选择"元素,跟踪正在使用的变体.它的值是变体id.
我附上一张图片,以便更清楚地知道发生了什么.

问题的视觉描述

目标:获取变体的变体ID.

问题:我无法在此select元素上检测到change事件.

限制:我不允许触摸此代码的HTML.我只能在运行时在<head>标记中的此页面上附加一个javascript文件,我需要检测该脚本中的更改事件.

$(document).ready(function(){

 $('body').on('change', "select[name='id']",  function(){

   console.log('here');

 });


});
Run Code Online (Sandbox Code Playgroud)

我可以随时随地使用以下代码获得它的价值.

console.log($("select[name='id']").val());
Run Code Online (Sandbox Code Playgroud)

任何改变事件的想法都不会被发现?

awe*_*san 3

由于目标是获取变体 id 的当前值,因此我是这样实现的。

获取值不是问题,因此当页面加载时,将初始值存储在localStorage中,然后监听表单上的更改事件。值得庆幸的是,更改事件在表单元素上触发。

        $('body').on('change', 'form[action^="/cart/add"]', function () {

            console.log($('select[name="id"]').val());

        });
Run Code Online (Sandbox Code Playgroud)

将当前值与之前的值进行比较,看看是否发生了变化。如果是的话,那就做我的事吧。如果没有,请等待表单上的另一个更改事件。是的,我希望它能长期有效。

谢谢你们 !!