Обновленный код и выпуск:
Я создаю тестовый комплект для моего RPC-сервера. В настоящее время он состоит из страницы, которая немедленно запускает AJAX-запрос для получения всех функций на сервере. Как только это возвращается, он создает список кнопок, чтобы я мог нажать, чтобы проверить. Со временем я добавлю диалоговые окна для проверки передачи параметров в функции, но в настоящее время я хочу просто отключить базовый запрос, когда нажимаю кнопку. Проблема, которую я вижу, заключается в том, что функция onclick всегда запускает последнюю функцию в списке, предположительно, потому что при нажатии клавиши устанавливается последнее значение в массиве. Я думал, что передать значение button.innerHTML, но это также страдает, что последний button.innerHTML является ключом окончательного ключа.
Что мне нужно сделать, чтобы правильно запустить действие?
Вот бизнес-конец кода:
$(document).ready(function() {
$.jsonRPC.setup({
endPoint: '//api.localhost/index.php'
});
$.jsonRPC.request('getExampleData', {
params: [],
success: function(result) {
for (var key in result.result) {
console.log(key+' => '+result.result[key]);
var button = document.createElement('button');
button.innerHTML = result.result[key];
button.onclick = function() { callRPCFunction(result.result[key]); return false; }
var foo = document.getElementById("page");
foo.appendChild(button);
}
},
error: function(result) {
console.log(result);
}
});
});
function callRPCFunction(target) {
$.jsonRPC.request(target, {
params: [],
success: function(result) {
console.log(result);
},
error: function(result) {
console.log(result);
}
});
}