zoukankan      html  css  js  c++  java
  • jQuery clone()方法绑定事件

    先看如下代码:

     1 (function ($) {
     2 
     3     var div = $("<div></div>").css({ "100px", height: "100px"});
     4     var colors = ["red", "blue", "yellow"];
     5     for (var c = 0; c < colors.length; c++) {
     6         var perDiv = div.clone();
     7         perDiv.css({
     8             background: colors[c]
     9         });
    10         perDiv.click(function () {
    11             console.log(colors[c]);
    12         });
    13         $("body").append(perDiv);
    14     }
    15 
    16 })($);

    效果图:

    无论点击那个div都是输出 underfined

    所以此代码不能解决每个div点击出现不同的事件。

    改进代码:

     1 (function ($) {
     2 
     3     var div = $("<div></div>").css({ "100px", height: "100px"});
     4     var colors = ["red", "blue", "yellow"];
     5     for (var c = 0; c < colors.length; c++) {
     6         var perDiv = div.clone();
     7         perDiv.css({
     8             background: colors[c]
     9         });
    10         perDiv.addClass("a"+c);
    11         $("body").append(perDiv);
    12     }
    13 
    14     for (var e=0;e<colors.length;e++){
    15         $(".a"+e).click(function () {
    16             console.log($(this));
    17         });
    18     }
    19 })($);

    效果:

    如图,每当点击一个对应就输出一个信息。

    总结:给每个元素添加个class或id 就行了╮(╯▽╰)╭

    补充:2016-09-24

    先看代码:

     1 $(function () {
     2 
     3     var colors = ["red", "blue", "green"];
     4     var div = $("<div></div>").css({ "100px", height: "100px"});
     5 
     6     for (var i = 0; i < colors.length; i++) {
     7         var odiv = div.clone();
     8         $("body").append(odiv);
     9         odiv.index = i;
    10         odiv.css({background: colors[odiv.index]});
    11     }
    12 });

    效果图:

    看效果和上面一样。

    这个的好处:没有添加类名,还实现了  "有分别"

    思路:通过给odiv附加个属性index来保存与其他odiv的不同

    感觉这样写 高大上 有木有。。

    补充:2016-11-30 10:07:36

     1    var colors = ["red", "blue", "green"];
     2         var div = $("<div></div>").css({ "100px", height: "100px"});
     3         function cloneDiv(num) {
     4             for (var i = 0; i < num; i++) {
     5                 var odiv = div.clone();
     6                 odiv.css("background", colors[i]);
     7                 $("body").append(odiv);
     8                 odiv.on("click", function () {
     9                     console.log(this);
    10                 })
    11             }
    12         }
    13         cloneDiv(colors.length);

    运用this,实现不同。。

  • 相关阅读:
    thinkphp ajax分页加载更多最简单的实现方法
    thinkphp整合系列之phpexcel导入excel数据
    Nginx详细安装部署教程
    swoole 安装方法
    tpshop使用中遇到的问题
    Oracle 的分页查询 SQL 语句
    使用 PLSQL 提示动态执行表不可访问,本会话的自动统计被禁止
    JavaScript实现多张图片上传功能
    JavaScript控制页码的显示与隐藏
    Struts2 项目 Action 查询结果异常 org.apache.struts2.json.JSONException
  • 原文地址:https://www.cnblogs.com/chenluomenggongzi/p/5850538.html
Copyright © 2011-2022 走看看