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

Javascript 使用$(this)&;命名处理程序函数中的事件,javascript,jquery,Javascript,Jquery,我有这个功能: function showPost(event){ event.preventDefault(); $(this).parent('article').animate({width:'100%'}, 'slow'); } 我正试图这样使用它: $('.article-header').click(function(event){showPost(event);}); 当我以上述方式使用它时,事件属性的传递很好,但是$(this)在函数中不起作用。如果我试图将此作为参数

我有这个功能:

function showPost(event){
    event.preventDefault();
$(this).parent('article').animate({width:'100%'}, 'slow');
}
我正试图这样使用它:

$('.article-header').click(function(event){showPost(event);});
当我以上述方式使用它时,事件属性的传递很好,但是
$(this)
在函数中不起作用。如果我试图将
作为参数包含在
中。单击
方法,它将返回一个错误,声明
未定义。我甚至设置了
varths=$(这个)无效


请问,实现此功能的正确方法是什么?

直接使用此功能即可:

$('.article-header').click(showPost);
您正在丢失此
,因为您正在调用函数“裸”,而没有对象接收器。您也可以这样做(但不要这样做,因为这里没有意义):


直接使用该功能即可:

$('.article-header').click(showPost);
您正在丢失此
,因为您正在调用函数“裸”,而没有对象接收器。您也可以这样做(但不要这样做,因为这里没有意义):


事件是自动传递的。事件是自动传递的。非常感谢。我尝试过这个,但错误地将
showPost(event)
更改为
showPost()
。我真的不该犯这样的错误。非常感谢。我尝试过这个,但错误地将
showPost(event)
更改为
showPost()
。我真的不该犯这样的错误。