使用Jquery绑定功能到多个元素

前端之家收集整理的这篇文章主要介绍了使用Jquery绑定功能到多个元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个小问题的 jquery:我需要做这样的事情:
$(document).ready(function(){
    links = {};
    links.a = "Link a";
    links.b = "Link b";
    links.c = "Link c";

    for (x in links){
        $("#" + x).css("border","1px solid #000");
        $("#" + x).click(function(){
            alert(x);
        });
    }
});
</script>
<div id="a">a</div><br />
<div id="b">b</div><br />
<div id="c">c</div><br />

所以当您点击div#a时,您将获得“链接”警报,“b”键在div#b上等等…
问题是,如果你运行这个代码,点击每个元素会给出警报(“链接c”)作为结果,似乎只有最后的功​​能变量被分配给每个div …

当然,我可以通过编辑功能来处理div的id并使用$(this),但是对于cursiosity:是否有办法使这个循环工作?通过在函数中为每个元素创建和分配一个新的函数

Thx提前…

解决方法

使用闭包:(一个“这个”解决方案更优雅,但我发布这个是因为现在删除的答案有一个关闭解决方案没有工作)
$(document).ready(function(){
    links = {};
    links.a = "Link a";
    links.b = "Link b";
    links.c = "Link c";

    for (var x in links){
        $("#" + x).css("border","1px solid #000");
        $("#" + x).click(
            function(xx){ 
                return function() { alert(xx) };
            }(x)
        );
    };
});
原文链接:https://www.f2er.com/jquery/176017.html

猜你在找的jQuery相关文章