Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取内部未定义的数组单击循环内部的函数_Javascript_Jquery - Fatal编程技术网

Javascript 获取内部未定义的数组单击循环内部的函数

Javascript 获取内部未定义的数组单击循环内部的函数,javascript,jquery,Javascript,Jquery,我是新手,所以我想我错过了一些简单的东西。foor循环工作正常,但在它内部有一个未定义的变量 var categories_info = ["historia","excelencia","arte","social","instalaciones","padres","familia"]; for ( var i = 0; i < categories_info.length; i++) { $("#showMe-"+categories_info[i]).click(functi

我是新手,所以我想我错过了一些简单的东西。foor循环工作正常,但在它内部有一个未定义的变量

 var categories_info = ["historia","excelencia","arte","social","instalaciones","padres","familia"];
for ( var i = 0; i < categories_info.length; i++) {
  $("#showMe-"+categories_info[i]).click(function(){
    $(".info."+categories_info.[i]).addClass("info-show");
    console.log(".info."+categories_info[i]); //debug is undefinded
  });
};
var categories_info=[“历史”、“卓越”、“艺术”、“社会”、“安装”、“教士”、“家庭”];
对于(变量i=0;i
您需要创建一个类似

var categories_info = ["historia", "excelencia", "arte", "social", "instalaciones", "padres", "familia"];
for (var i = 0; i < categories_info.length; i++) {
    (function(i) {
        $("#showMe-" + categories_info[i]).click(function() {
            $(".info." + categories_info[i]).addClass("info-show");
            console.log(".info." + categories_info[i]); 
        });
    })(i);
};
var categories_info=[“历史”、“卓越”、“艺术”、“社会”、“安装”、“教士”、“家庭”];
对于(变量i=0;i
这种方法称为

基本上,当实际单击发生时,变量
i
对回调不可用


但是,通过在自执行匿名函数中传递
i
,您已经创建了一个闭包,该闭包将保留
i
,并且可以被单击处理程序访问。

您需要创建一个类似

var categories_info = ["historia", "excelencia", "arte", "social", "instalaciones", "padres", "familia"];
for (var i = 0; i < categories_info.length; i++) {
    (function(i) {
        $("#showMe-" + categories_info[i]).click(function() {
            $(".info." + categories_info[i]).addClass("info-show");
            console.log(".info." + categories_info[i]); 
        });
    })(i);
};
var categories_info=[“历史”、“卓越”、“艺术”、“社会”、“安装”、“教士”、“家庭”];
对于(变量i=0;i
这种方法称为

基本上,当实际单击发生时,变量
i
对回调不可用

但是,通过在自动执行的匿名函数中传递
i
,您已经创建了一个闭包,该闭包将保留
i
,并可供单击处理程序访问。

使用闭包。更改:

$("#showMe-"+categories_info[i]).click(function(){
    $(".info."+categories_info.[i]).addClass("info-show");
    console.log(".info."+categories_info[i]); //debug is undefinded
});
致:

使用闭包。更改:

$("#showMe-"+categories_info[i]).click(function(){
    $(".info."+categories_info.[i]).addClass("info-show");
    console.log(".info."+categories_info[i]); //debug is undefinded
});
致:


谢谢我不知道这件事,谢谢你提供的关于这个方法的信息。我在console.log中看到了我所期望的,但我在这一行上得到了
意外的令牌[
(.info.+categories\u info.[I]).addClass(“信息显示”)
wich似乎真的odd@ShairNash,这是一个语法错误,有一个额外的
。请尝试我更新的答案,如果它仍然不起作用,请告诉我。我现在看到点了!我怎么会错过它?非常感谢!我不知道这一点,谢谢你提供有关该方法的信息。我在console.log中看到了我预期的结果,但我得到了
意外的结果d标记[
在这一行
$(.info.+categories_info.[i]).addClass(“info show”);
看起来odd@ShairNash,这是一个语法错误,有一个额外的
。请尝试我更新的答案,如果它仍然不起作用,请告诉我。我现在看到点了!我怎么会错过它?非常感谢!