jQuery中的javascript – .change()与.on(“更改”,处理程序)

前端之家收集整理的这篇文章主要介绍了jQuery中的javascript – .change()与.on(“更改”,处理程序)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_1@当我使用jQuery来处理下拉列表中的更改触发器时,我遇到了一个问题.

我用2段代码

//---------- Case 1
$(document).on("change","#drop-down-id",function () {
    alert(this.value);
});
//----------Case 2
$("#drop-down-id").change(function () {
    alert(this.value);
});

第一个运行顺利,但第二个没有在我启动浏览器时触发,但在我刷新我的网站后,它可以工作.

你有什么主意吗?

我的jQuery版本:1.11.1,我在Chrome 38,Firefox 32和IE 11上测试过.

– 编辑:
@JanR&爽快:看起来像这样:

<select id="drop-down-id">
    <% arr.each do |option| %>
        <option value="<%= option %>"><%= option %></option>
    <% end %>
</select>

我使用过Rails 4.1和arr是一个包含数字的数组.

– 编辑:
我发现问题来自Rails的Asset Pipeline,而不是jQuery.

我把JS代码放在一个脚本标签中,它在两种情况下都有效,但当我把它放在assets文件夹中时,就会出现问题.

谢谢你的快速回复

解决方法

我建议使用案例1,因为它是由加载更改事件组成的文档,如果选择动态生成的元素,则用例1将生效.

另外jquery doc说,.change()是.on(“更改”,处理程序)的快捷方式,所以我认为最终会使用.on回调.

猜你在找的jQuery相关文章