首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

帮忙解释上里面的这段 jQuery代码($.each()里面添加事件)

2012-09-05 
帮忙解释下里面的这段 jQuery代码($.each()里面添加事件)JScript codevar images [1, 2, 3, 4]

帮忙解释下里面的这段 jQuery代码($.each()里面添加事件)

JScript code
var images = ["1", "2", "3", "4"];$(function(){    $.each(images, function (i) {        var divNew = $('<div style="width:20px;height:10px; background-color:blue;float:left;margin:2px"></div>');        $(divNew).click(function () {           alert(images[i]);        });    });});


我想知道,点击每个新建的层 为什么可以得到 不同的 images[i]

[解决办法]
$.each()这个方法会遍历。。和for循环差不多
[解决办法]
jQuery.each( collection, callback(indexInArray, valueOfElement) )

each()方法回调函数中的第一个值是数组结构的索引。
[解决办法]
这个i其实是each()方法的一个返回值,绑定事件时相当于alert(images[0])、alert(image[1])。。。
[解决办法]
$.each(index, key)


index是指 当前元素位于array中的索引
key是指当前元素


each就相当于封装的for语句

参考下

HTML code
<!DOCTYPE HTML><html>    <head>        <meta charset="gb2312" />        <title></title>    </head>    <body>        <div>1</div>        <div>2</div>        <div>3</div>        <div>4</div>        <script>            function $(el){                return typeof el == 'string' ? document.getElementById(el) : el;            }            function $t(name, cot){                cot = cot || document;                return cot.getElementsByTagName(name);            }            function makeArray( obj ){                var arr = [];                for ( var i = 0, len = obj.length; i < len; i++ ){                    arr.push(obj[i]);                }                return arr;            }                        Array.prototype.each = function(fn){                for ( var i =0, len = this.length; i < len; i++ ){                    fn.call( null, i, this[i] );                        }            }            var objs = $t('div');            var arr = makeArray(objs);            arr.each(function(i, k){                k.onclick = function(){                    alert(i)                }            })        </script>    </body></html> 

热点排行