相关疑难解决方法(0)

如何将参数传递给setTimeout()回调?

我有一些JavaScript代码,如下所示:

function statechangedPostQuestion()
{
  //alert("statechangedPostQuestion");
  if (xmlhttp.readyState==4)
  {
    var topicId = xmlhttp.responseText;
    setTimeout("postinsql(topicId)",4000);
  }
}

function postinsql(topicId)
{
  //alert(topicId);
}
Run Code Online (Sandbox Code Playgroud)

我得到一个topicId未定义的错误在使用该setTimeout()函数之前,一切正常.

我希望postinsql(topicId)在一段时间后调用我的函数.我该怎么办?

javascript parameters callback settimeout

796
推荐指数
12
解决办法
54万
查看次数

函数产生未定义的变量

我正在学习管理系统中工作并创建一些自定义组件

这是返回url但是"course_syllabus_code"在url后显示为undefined.我是Javascript的初学者,已经在谷歌上看了一些其他的答案,但仍然无法弄明白.

基本上用户将能够打开代码并在顶部输入变量(将有多个).接下来是所有魔法应该发生的地方......

输入的变量的结构不能改变,但可能没有以最佳方式执行"魔术".

<script type="text/javascript">

var course_syllabus_code = "72524";

function syllabusLink(course_syllabus_code) {
location.href = 'https://foo.com'+course_syllabus_code;
}
</script>

<ul>
<li><a href="javascript:syllabusLink()"><img src="CourseButton3.png" />Syllabus</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

javascript var undefined-function

2
推荐指数
1
解决办法
2105
查看次数

setTimeout在for循环中传递参数

我创建了一个数组。我想用settimeout发送ajax请求。但是我无法在settimeout中获取参数。当我打印控制台日志变量时,我是不确定的。我怎么解决这个问题?

控制台日志结果

i undefined
Run Code Online (Sandbox Code Playgroud)

JavaScript代码

$scope.type = ["st", "ct", "sc", "rm", "bg", "sf", "fl", "sq", "pr", "cr", "vl", "fd"];

for (var i = 0; i < $scope.type.length; i++) {
    setTimeout(function (i) {
        console.log("i", i);
        $scope.params = {
            lat: $scope.lat,
            lng: $scope.lng,
            time: $scope.time,
            type: $scope.type[i]
        }
        console.log("params", $scope.params);
        return;
        $.ajax({
            type: 'post',
            url: "bz.php",
            dataType: 'json',
            async: true,
            cache: false,
            data: $scope.params,
            success: function (data) {
                if (data.response) {
                    console.log("data.response", data.response);
                    return;
                    if (!$scope.$$phase) $scope.$apply();
                } else if (data.response == …
Run Code Online (Sandbox Code Playgroud)

javascript closures settimeout angularjs

2
推荐指数
2
解决办法
541
查看次数