无法从$()。data()中达到$(this)

时间:2010-12-16 16:32:02

标签: javascript jquery

我正在尝试将元素的类设置在同一元素的数据对象中,但它会一直返回undefined。

$(this).data({
            orgSize:{ // Write all the sizes as data. For future reference.
                width: $(this).width(), //returns the width just fine!
                height: $(this).height() //returns the height just fine!
            },
            orgClass: function(){
                cl = $(this).attr('class');
                if(cl){
                    return ' ' + cl;
                }else{
                    return ' somethingelse';
                }
            } //returns undefined
        });

        console.log($(this).attr('class')) //returns the class

编辑:问题出在orgClass中。

2 个答案:

答案 0 :(得分:6)

var me = $(this);
me.data({
  orgSize  : { width:me.width(), height:me.height() },
  orgClass : function(){
    cl = me.attr('class');
    return cl ? (' '+cl) : ' somethingelse';
  }
});

答案 1 :(得分:0)

它是一个范围问题,'orgSize'中的'this'指的是'orgSize'对象本身..