繁体   English   中英

在命名处理函数中使用$(this)&event

[英]Using $(this) & event in named handler function

我有这个功能:

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); 无济于事。

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

只需直接使用该功能:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM