1

我试图将一个事件绑定到下拉列表,因为昨天没有任何帮助进入 JavaScript 聊天室,没有人能够找到解决我的问题的方法,但后来我以某种方式尝试绑定我的下拉列表,如下所示

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

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

它开始工作了,有什么想法吗?

编辑

抱歉,它不适用于 IE :(

4

4 回答 4

6

jQuery 使用CSS selectorlike 语法。

因为ID Selector它需要以#符号作为前缀。例子,$('#DOMElementId')

检查 jQuery选择器列表

在您的情况下,正确的应该是

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

或者

$('#<%= ddl.ClientID %>').bind('change',myfunction)
于 2012-09-13T09:08:17.657 回答
4

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

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

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

您可能通过另一个错误在您的代码中使这一行无效来修复错误。

于 2012-09-13T09:02:28.240 回答
2

您可能应该ClientID改用

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

于 2012-09-13T09:13:31.470 回答
1

最好的选择是

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

即使您在用户控件或内容页面中使用此控件,它也可以工作

$('#'+'<%= ddl.ClientID %>').change(myfunction);
于 2012-09-13T09:13:48.560 回答