首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使jQuery load()适用于数组的所有元素,而不仅仅是最后一个元素

如何使jQuery load()适用于数组的所有元素,而不仅仅是最后一个元素
EN

Stack Overflow用户
提问于 2012-11-21 02:27:59
回答 2查看 71关注 0票数 0

我有一个按名称显示数据馈送列表的网页(下面的dataFeed变量),并且我正在尝试模拟一个弹出窗口,当用户单击数据馈送名称旁边的图标(dataFeed + 'dataLink')时,该弹出窗口包含有关数据馈送的更多信息。我有一个隐藏的div (diagWindow),其中包含一个填充了关于提要的信息的div (diagWindowContent)。getDiagData.php页面使用传递给它的dataFeed参数返回我想要显示的信息。

一开始我试过这个。

代码语言:javascript
复制
for (i = 0; i < dataFeeds.length; i++) {
    dataFeed= dataFeeds[i];

    $('#' + dataFeed+ 'diagLink').click(function() {
        $('#diagWindow').toggle();
        $('#diagWindowContent').load('getDiagData.php?dataFeed=' + dataFeed);
    });
}

但这只显示了为dataFeeds数组中的最后一个dataFeed返回的页面。

然后,我尝试在toggle()上使用一个回调方法,如下所示...

代码语言:javascript
复制
for (i = 0; i < dataFeeds.length; i++) {
    dataFeed= dataFeeds[i];

    $('#' + dataFeed+ 'diagLink').click(function() {
        $('#diagWindow').toggle('fast', function(dataFeed) {
            return function() {
                $('#diagWindowContent').load('getDiagData.php?dataFeed=' + dataFeed);
            }(dataFeed)
        );            
    });
}

但这似乎具有相同的结果,即显示dataFeeds数组中最后一次数据馈送的信息。

我正在寻求帮助,了解如何在单击数据馈送名称旁边的图标时从getDiagData.php页面加载适当的数据馈送信息。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-21 02:31:35

试试这个..。您没有在正确的上下文中执行它。

代码语言:javascript
复制
for (i = 0; i < dataFeeds.length; i++) {
    (function(num){
        var dataFeed = num;

        $('#' + dataFeed + 'diagLink').click(function() {
            $('#diagWindow').toggle();
            $('#diagWindowContent').load('getDiagData.php?dataFeed=' + dataFeed);
         });
    })(dataFeeds[i])
}​
票数 3
EN

Stack Overflow用户

发布于 2012-11-21 02:30:38

这很可能是一个变量作用域问题,您可以尝试如下所示:

代码语言:javascript
复制
for (var i = 0; i < dataFeeds.length; i++) {
    var dataFeed= dataFeeds[i];

    $('#' + dataFeed+ 'diagLink').click(function() {
        $('#diagWindow').toggle();
        $('#diagWindowContent').load('getDiagData.php?dataFeed=' + dataFeed);
    });
}

请注意添加的var关键字

编辑:实际上,Sushanth的答案更正确。我相信Javascript中的变量是由函数限定作用域的,所以我上面的代码可能无法正常工作。他的遗嘱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13479723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档