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

前端之家收集整理的这篇文章主要介绍了使用Jquery绑定功能到多个元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个小问题的 jquery:我需要做这样的事情:
  1. $(document).ready(function(){
  2. links = {};
  3. links.a = "Link a";
  4. links.b = "Link b";
  5. links.c = "Link c";
  6.  
  7. for (x in links){
  8. $("#" + x).css("border","1px solid #000");
  9. $("#" + x).click(function(){
  10. alert(x);
  11. });
  12. }
  13. });
  14. </script>
  15. <div id="a">a</div><br />
  16. <div id="b">b</div><br />
  17. <div id="c">c</div><br />

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

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

Thx提前…

解决方法

使用闭包:(一个“这个”解决方案更优雅,但我发布这个是因为现在删除的答案有一个关闭解决方案没有工作)
  1. $(document).ready(function(){
  2. links = {};
  3. links.a = "Link a";
  4. links.b = "Link b";
  5. links.c = "Link c";
  6.  
  7. for (var x in links){
  8. $("#" + x).css("border","1px solid #000");
  9. $("#" + x).click(
  10. function(xx){
  11. return function() { alert(xx) };
  12. }(x)
  13. );
  14. };
  15. });

猜你在找的jQuery相关文章