在对象回调中使用'this'和JQuery函数

时间:2014-06-23 18:51:21

标签: javascript jquery function callback this

我创建了一个对象,并且无法通过该回调更新元素。以下是一些简短的示例代码:

function myObj() {
    LINK_ID = '';
    PREFIX = '';
};

myObj.prototype.init = function(config)
{
    LINK_ID = config.link_id;
    PREFIX = config.prefix;

    $(this.LINK_ID).click($.proxy(this, 'swapState'));
};

myObj.prototype.swapState = function()
{
    $(this.PREFIX).toggleclass(this.PREFIX + "_toggled");  // Errors here
};

var m = new MyObj();
m.init({link_id: "#linky", prefix: "#mydiv"});

我得到了一个未被捕获的TypeError:undefined不是一个函数'以toggleclass为特色的行上的错误。我可以在该函数的范围内看到this.PREFIX的值,但出于某种原因,它不会让我调用toggleclass。

任何线索?

感谢。

1 个答案:

答案 0 :(得分:0)

应该是:

$(this.PREFIX).toggleClass(this.PREFIX + "_toggled");

并确保定义了xxx_toggled个类。