这是我的代码:
$.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/