我有以下幾點:jQuery的犯規調用警告框
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$.getJSON(
"/myServer/getAllWidgets",
function(data) {
var optionsHTML = "<select id='widget-sel'>";
optionsHTML += "<option selected='selected' id='default'>Select an option</option>";
var len = data.length;
for(var i = 0; i < len; i++) {
optionsHTML += '<option value="' + data[i] + '">'
+ data[i] + '</option>';
}
optionsHTML += "</select>";
$('#widget-sel-div').html(optionsHTML);
}
);
$("#widget-sel").change(function() {
alert("Hello!");
});
});
</script>
<div id="widget-sel-div"></div>
所以,這個想法是,當document.ready
火災,它將填充widget-sel-div
一個選擇框(widget-sel
),然後創建該選擇改變處理程序簡單地打印「你好!」通過警報箱到屏幕。
當我運行這個時,我沒有得到任何錯誤(Firebug根本沒有抱怨),並且select從我的AJAX調用的所有小部件中填充到/myServer/getAllWidgets
。 問題是,更改處理程序不工作:當我選擇一個小部件時,我沒有收到警報箱。任何人都可以找到我要去的地方嗎?提前致謝。
別你需要);在你的$(「#widget-sel」)後改變(function(){ alert(「Hello!」); } 我的意思是你好像沒有關閉你的change事件。 –
對不起@Xeano(和其他人) - 這是我創建這個問題的一個錯字。實際的代碼是正確的,我已經更新了上面的代碼片段以反映這一點。 – IAmYourFaja
這很好:)問題在下面描述,$ .getJSON是asnychroneous。 –