javascript – jQuery:从数组循环中设置点击

前端之家收集整理的这篇文章主要介绍了javascript – jQuery:从数组循环中设置点击前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一系列的头部/身体的图案,其中标题的点击将显示有问题的身体.

这一切都发生在.click初始化页面准备好…

而不是这样做(工作正常,但是是一种痛苦):

$('#show_fold_ping').click(function(){ ShowArea('#fold_ping') });
$('#show_fold_http').click(function(){ ShowArea('#fold_http') });
$('#show_fold_smtp').click(function(){ ShowArea('#fold_smtp') });
$('#show_fold_pop3').click(function(){ ShowArea('#fold_pop3') });
...

我试图这样做:

var Areas = ['ping','http','smtp','pop3'];

for( var i in Areas ){
    Area = '#show_fold_'+Areas[i];
    $(Area).click(function(){ alert(Area); /* ShowArea(Area); */ });
}

我遇到的问题是,所有这些都似乎被初始化为最后一个. IE:如果pop3是最后一个,请点击#show_fold_ [any]将提醒’#show_fold_pop3′.

这似乎应该真的很简单.我缺少一些明显的东西,还是将一个字符串传递给我不知道的jQuery?

编辑:

嘿,这些都很棒.我已经读了一些关闭和自我调用功能,(kindasorta)得到它.

到目前为止,我有这个,但是点击似乎没有正确的绑定.区域将以正确的值进行警报,但没有点击绑定.我是否仍然与区域的范围问题,或者我只是完全关闭标记

$(function(){

    Areas = ['ping','pop3','imap','ftp','dns','tcp','database','SEO'];

    for( var i = 0; i < Areas.length; i++ ){
        (function (Area) {
                            alert(Area);
            $("#show_fold_"+Area).click(function(){ alert('x'); });
        })(Areas[i]);
    }
});

解决方法

是的,我经常遇到这个问题. Area是一个全局变量,因为它没有var.另外,在构造中不要使用….

但你可能还遇到类似的问题.上帝知道由于类似的错误,我调试了多少个脚本.做以下保证正确的范围:

var Areas = ['ping','pop3'];

for( var i = 0; i < Areas.length; i++ ){
  (function(area) {
    $(area).click(function(){ alert(area); /* ShowArea(area); */ });
  })(Areas[i]);
}
原文链接:https://www.f2er.com/jquery/151450.html

猜你在找的jQuery相关文章