小编hai*_*ran的帖子

jQuery中的.change()vs .on("change",handler)

当我使用jQuery来处理下拉列表中的更改触发器时,我遇到了一个问题.

我使用2段代码:

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

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

你有什么主意吗?

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

- 编辑:@JanR&Cheery:看起来像这样:

<select id="drop-down-id">
    <% arr.each do |option| %>
        <option value="<%= option %>"><%= option %></option>
    <% end %>
</select>
Run Code Online (Sandbox Code Playgroud)

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

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

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

感谢您的快速回复!

javascript jquery ruby-on-rails

11
推荐指数
2
解决办法
2万
查看次数

Javascript - 编译语言?

我是 Web 开发的新手,我正在学习 JavaScript。

来自斯坦福大学的课程

JavaScript 是一种解释型语言,而不是一种编译型语言。像 C++ 或 Java 这样的程序在运行之前需要进行编译。源代码通过称为编译器的程序传递,编译器将其转换为机器理解并可以执行的字节码。相比之下,JavaScript 没有编译步骤。相反,浏览器中的解释器会读取 JavaScript 代码,解释每一行,然后运行它。更现代的浏览器使用一种称为即时 (JIT) 编译的技术,该技术在 JavaScript 即将运行时将其编译为可执行的字节码。

你不知道的 JS: Scope & Closures by Kyle Simpson :

...但尽管 JavaScript 属于“动态”或“解释”语言的一般类别,但它实际上是一种编译语言。

我们只是说,为了简单起见,任何 JavaScript 片段都必须在执行之前(通常是在执行之前!)编译。所以,JS 编译器会取程序 var a = 2; 并首先编译它,然后准备好执行它,通常是立即执行。

从 Stack Overflow 上的一些问题来看,有一些想法,例如:这取决于语言的实际实现。

你有什么想法?

javascript

7
推荐指数
2
解决办法
2125
查看次数

标签 统计

javascript ×2

jquery ×1

ruby-on-rails ×1