javascript - jQuery .change() 仅在第一次更改时触发

标签 javascript jquery html

这是我的代码:

$.each (t.config.industry, function (i, v) {
    $(v).change(function () {
        console.log("Industry change!");
    });
});

t.config.industry<select> 的数组编号。 t.config.industry: ["#W2549_Sl", "#W2601_Sl", "#W2654_Sl"]我有几个<select>页面上的框,我正在跟踪它们。任何时候他们中的任何一个改变我都想开火。

显然,我尝试做的不仅仅是 console.log,但为了这篇文章,我将仅限于此。在我的网站上,console.log 仅在第一次更改时打印一次。关于 <select> 的后续更改它不会触发下拉菜单。

有人以前见过这个吗?

注意:我根本无法更改 HTML 标记。

最佳答案

当多个 select 元素的 id 不唯一时,我亲眼目睹了这种行为。为了解决我的问题,我只是删除了 id,定义了一个类,然后修改了 jQuery 选择器以使用指定的类。例如:

    <select class="some_value" some_id="<%= some[:id] %>">

    $(".some_value").change(function() {
        var some_id = $(this).attr("some_id");
        alert('some_id: ' + some_id);
    });

坦率地说,我认为这种行为是 jQuery 中的一个错误。为什么它一次成功,然后就失败了?

关于javascript - jQuery .change() 仅在第一次更改时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772985/

相关文章:

html - 在调整浏览器窗口/分辨率大小时保持元素位置

javascript - 获取对 &lt;script&gt; 父元素的引用

javascript - 使用选择器后 Jquery 使用选择器

javascript - 使用 Redux 进行 React,组件无法识别从父级传递的属性

javascript - 如何从提交的按钮帖子上的 Javascript 返回并访问对象?

javascript - 如何替换 jQuery DOM 元素中的字符串

javascript - SCRIPT1028 : Expected identifier, 字符串或数字

java - AJAX POST 到 Spring Controller 中的空参数

javascript - CSS/JS : Animate Inline Element Upon Text Change

html - 当窗口太短时,CSS 创建两列