你已經錯過了很多括號。
我已經更改了您的完整代碼並添加了新功能。這一個現在等待500毫秒,直到它觸發JSON調用。這很重要,否則每次用戶輸入一個字母時都會發送JSON請求。這將是對性能方面非常壞..
而且我已經爲你添加一些評論;)
//this one waits until the dom is loaded
$(function(){
var inputValue = $('input[name=income]');
//creates a new constructor function that handles the actual call and wait-time
var JSONSender = function(){
//saves the timeout id to clear it if necessary
var timeoutId = null,
jsonUrl = "https://dl.dropboxusercontent.com/u/430406/Temp %5Bok to delete%5D/Various/salaryCalc/7100.json";
this.getJSON = function(_callback){
//if a setTimeout is already in progress, cancel it
if(timeoutId !== null){
clearTimeout(timeoutId);
}
//fire the actual code after 500 ms
timeoutId = setTimeout(function(){
timeoutId = null;
$.getJSON(jsonUrl, _callback);
},500);
}
};
var jsonSender = new JSONSender();
$('#input-form').keyup(function(e) {
jsonSender.getJSON(function(data){
$.each (data, function (key, val) {
if (inputValue.val() == val.income){
$('#tax-calc').text(val.tax);
return;
}
});
})
});
});
你一定可以通過查看瀏覽器的發現一些小的語法錯誤JS控制檯或使用諸如JSLint或JSHint的工具。 – Quentin
如果其中一個答案錯誤地發生,請將其標記爲解決方案 – Christian
固定的拼寫錯誤。標記解決方案 – Andreas