问问题
54282 次
4 回答
38
该代码在语法上是正确的。很可能在错误的时间运行它。
当DOM 准备好时,您需要绑定事件:
原生 JS/DOM
window.addEventListener('DOMContentLoaded', () => {
const yearDropDown = document.getElementById('yearDropdown');
yearDropDown.addEventListener('change', () => {
alert(yearDropDown.value)
});
});
jQuery
$(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());
});
尽管如此,通常最好在浏览器完成渲染标记后执行脚本。
于 2012-06-26T21:29:34.863 回答
2
我已经在 jsFiffle中尝试过您的代码。我手动添加了一些年份作为选项。它工作正常。
只需在 $(document).ready 中绑定 .change 事件:
$(document).ready(function(){
$("#yearDropdown").change(function () {
alert('The option with value ' + $(this).val());
});
});
于 2012-06-26T21:36:26.977 回答
0
不确定这是否会有所帮助,但你可以试试这个:
$("#yearDropdown").live("change", function () {
alert('The option with value ' + $(this).val());
});
于 2012-06-26T21:34:22.720 回答
0
您的代码是正确的并且对我有用,请参见此处:http: //jsfiddle.net/mobweb/2Skp9/
您确定 jQuery 已正确加载吗?
于 2012-06-26T21:31:41.187 回答