我有这个功能:
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);
无济于事。
请问,这个功能发生的正确方法是什么?
答案 0 :(得分:4)
直接使用该功能:
$('.article-header').click(showPost);
你正在失去this
,因为你正在调用“裸体”功能,没有对象接收器。你也可以这样做(但不要因为这里没有意义):
$('.article-header').click(function(event) { showPost.call(this, event); });