使用$(this)&命名处理函数中的事件

时间:2013-11-16 20:07:32

标签: javascript jquery

我有这个功能:

function showPost(event){
    event.preventDefault();
$(this).parent('article').animate({width:'100%'}, 'slow');
}

我试图像这样使用它:

$('.article-header').click(function(event){showPost(event);});

当我以上述方式使用它时,event属性传递得很好,但是$(this)在函数中不起作用。如果我尝试在this方法中包含.click作为参数,则会返回错误声明this未定义。我甚至设置var ths = $(this);无济于事。

请问,这个功能发生的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

直接使用该功能:

$('.article-header').click(showPost);

你正在失去this,因为你正在调用“裸体”功能,没有对象接收器。你也可以这样做(但不要因为这里没有意义):

$('.article-header').click(function(event) { showPost.call(this, event); });