HTML JQuery .change无法正常工作

好吧,我不明白为什么这不起作用。 看起来很简单。

这是我的下拉菜单:

<option value=/events.html?display_year=${years}selected="selected">${years}

这是JavaScript

 $("#yearDropdown").change(function () { alert('The option with value ' + $(this).val()); }); 

现在我只是想让它工作,所以我可以添加function。 谢谢!

该代码在语法上是正确的。 最有可能在错误的时间运行它。

您希望在DOM准备好时绑定事件:

 $(function(){ /* DOM ready */ $("#yearDropdown").change(function() { alert('The option with value ' + $(this).val()); }); }); 

或者,使用live

 $("#yearDropdown").live('change', function() { alert('The option with value ' + $(this).val()); }); 

或者,使用delegate

 $(document.body).delegate('#yearDropdown', 'change', function() { alert('The option with value ' + $(this).val()); }); 

或者,如果您使用的是jQuery 1.7+

 $("#yearDropdown").on('change', function() { alert('The option with value ' + $(this).val()); }); 

尽管如此,通常最好在浏览器完成渲染标记后执行脚本。

我在jsFiffle中尝试过你的代码。 我手动添加了几年作为选项。 它工作正常。

只需绑定$(document).ready中的.change事件:

 $(document).ready(function(){ $("#yearDropdown").change(function () { alert('The option with value ' + $(this).val()); });​ }); 

你的代码是正确的,并为我工作,请看这里: http : //jsfiddle.net/mobweb/2Skp9/

你确定jQuery已正确加载吗?

不确定这是否有帮助,但你可以试试这个:

  $("#yearDropdown").live("change", function () { alert('The option with value ' + $(this).val()); });