当skecthpad在循环中实例化时,无法在skecthpad.change()函数上获得Raphael sketchpad skecthpad.json()

时间:2014-02-22 16:08:49

标签: jquery raphael

var change_sample = [];
$(document).ready(function () {
    /* Create sketchpad for all elements */
    for (var i = 1; i <= 32; i++) {
        var temp = "tooth" + (i);
        change_sample[i] = Raphael.sketchpad(temp, {
            width: 57,
            height: 85,
            editing: true
        });
    }
    /* bind change event to all skecth pad objects */
    for (var j = 1; j <= change_sample.length; j++) {
        //          var temp = "tooth" + (j);
        change_sample[j].change(function () {
            alert("sdfgsd"`enter code here` + $(this).json());
        });
    }

我能够进入更改事件,即获取警报但无法获取change_sample [j] .json()或$(this).json()。 提前致谢

1 个答案:

答案 0 :(得分:0)

以下解决了这个问题..

       change_sample.forEach(function(item ,index) {           
        item.change(function() {
            alert("sdfgsd" +  item.json() + "index" + index);

        });
    })

让您获得对原始集合的引用 Difference in Jquery.each() and Array.prototype.forEach() method

但是对于IE 7,8不起作用将不得不应用ES-5垫片来使其在那里工作