【发布时间】:2016-06-08 04:26:16
【问题描述】:
使用此功能
function readPinMode(callback,pin){
$.ajax({
type: 'GET',
url: path,
data: {
'funct': "readPinMode", //function included and working ou of loops
'pin': pin,
'php': 0
},
success: function (result) {
//console.log(result);
callback(result);
},
error: function (xhr, textStatus, error) {
console.log(xhr);
console.log(textStatus);
console.log(error);
}
});
};
这样一来,根本就什么都不做:
$( document ).ready(function() {
<?php
$js_array = json_encode($GLOBALS['gpio']); // got from included file, working
echo "var pins = ". $js_array . ";\n";
?>
console.log( "Document ready." );
for (i = 0; i < pins.length; i++) {
var mode = "m" + pins[i];
function initMode(){
readPinMode(function(ret){
console.log(ret);
$(mode).text(ret);
console.log(mode);
}, pins[i]);
};
}
它进入了for循环(我可以登录控制台mode和pins[i],它们正在工作)但该函数似乎没有被调用。
控制台不显示任何内容。
有没有办法解决这个问题? 谢谢
【问题讨论】:
-
永远不要在循环中使用 ajax。
-
ret是ajax成功方法的结果 -
function initMode()在那里做什么??你只是在定义一个函数。并且不执行它..因为它具有调用 AJAX 并接收结果的逻辑 -
首先在i前加var。而且您不需要该函数 initMode() {},它只是在循环内声明函数,没有任何反应。
-
mode应该是什么?它是 HTML 元素 ID 吗?pins到底是什么?
标签: javascript jquery ajax for-loop