‘$()和$(”)之间的差异

我试图绑定一个事件到下拉列表,因为昨天没有任何帮助去JavaScript聊天室没有人能够找到我的问题的修复,但后来我不知何故试图绑定我的下拉列表如下

$('').bind('change',myfunction); 

 $().bind('change',myfunction); 

它开始工作,任何想法?

编辑

对不起,它不在IE上工作:(

jQuery使用CSS selector类的语法。

对于ID Selector它必须是#符号的前缀。 例如, $('#DOMElementId')

检查jQuery Selector列表

在你的情况下,一个应该是正确的

 $('#<%= ddl.ID %>').bind('change',myfunction) // if you have no master page or //ClientIDMode="static" 

要么

 $('#<%= ddl.ClientID %>').bind('change',myfunction) 

jQuery函数需要一个字符串作为选择器。

后一种语法没有任何意义,除了

  • 如果你的字符串是一个javascript变量(例如document.bodymyvar如果你定义了myvar )。
  • 如果您的ddl.ID字符串包含引号(您可能已将其创建为ddl.ID = "\"#id\"";

你有可能通过另一个错误修复了一个错误,导致代码中的这一行无效。

您应该使用ClientID

$('#<%= ddl.ClientID %>').bind('change', myfunction);

最好的选择是

 $('#'+'<%= ddl.ClientID %>').bind('change',myfunction); 

它甚至可以在用户控件或内容页面中使用此控件

 $('#'+'<%= ddl.ClientID %>').change(myfunction);