2012-04-16 29 views
-1

我使用jQuery我想知道的是下面的JavaScript代码的jQuery的版本:这段代码的jQuery版本是什么?

document 
     .getElementById('cars') 
     .addEventListener('change', handleFileSelect, false); 

这是因为jQuery不喜欢addEventListener()

+7

你试过了什么? SO不是免费的编码服务。从学习jQuery开始:http://docs.jquery.com/Tutorials – 2012-04-16 12:30:25

+2

这不是jQuery。这是纯粹的javascript – emilan 2012-04-16 12:31:17

+0

我发布这个问题之前尝试绑定方法,但它似乎并没有工作 – user1333290 2012-04-16 12:32:50

回答

5

那将是...

$('#cars').change(handleFileSelect); 

jQuery的确实addEventListener()。事实上,我确定这是它的事件的首选实施(作为标准)。

2
$('.#cars').change(handleFileSelect); 

拆毁了

// document.getElementById('cars') 
$('#cars');      // #<name> is id reference, 
            // .<name> is class reference 
            // <name> is an HTML tag reference 

// addEventListener 
.bind('change', handleFileSelect) // "broad" binding 
.change(handleFileSelect)   // jQuery short-hand of above 
1

本质上你的答案是这样的:

$("#files").bind("change",handleFileSelect); 

然而change事件用于其他一些内置的事件处理程序,所以你可能想留远离使用特定的字符串作为你的事件 - 除非你正在寻找捕获事件。 :P

当元素值发生变化时,将更改事件发送给元素。此 事件限于<input>元素,<textarea>框和<select> 元素。对于选择框,复选框和单选按钮,当用户使用鼠标 进行选择时,会立即触发事件 ,但对于其他元素类型,事件将推迟到 元素失去焦点。


jQuery documentation说,这来形容bind功能:

附加的处理程序为元素的事件。

4
$("#cars").bind("change",handleFileSelect) 
1

你可以尝试:

$('#cars').bind('change', function() { //your code goes here }); 

据jQuery的文档:

http://api.jquery.com/bind/(绑定)

http://api.jquery.com/live/(活)

考虑的大量C你必须选择更清楚的人,以及容易理解的人。

希望它有帮助!

+0

请注意,'.live'自jQuery 1.7以来已弃用。 – 2012-04-16 15:28:59

+0

是的,只为研究目的。这里是新的“on”方法:http://api.jquery.com/on/谢谢! – axcdnt 2012-04-16 15:31:44

0
$("#cars").on('change', handleFileSelect); 
-1
$("#cars").live("change",handleFileSelect) 

这会有所帮助,如果你的输入件动态由JavaScript创建的。

+1

你应该将它与你现有的答案合并 - 这是不足以在自己的答案。 – Lix 2012-04-16 12:36:28

+1

现在不应该通过'on()'推荐'live()'。 – alex 2012-04-16 12:57:25