gpt4 book ai didi

javascript - 无法在回调中调用函数

转载 作者:行者123 更新时间:2023-12-03 08:48:48 26 4
gpt4 key购买 nike

我正在使用 JavaScript 和 jQuery 制作一个网页。我有一个 id 为“show-hidden-tables”的复选框,以及用于将点击处理程序附加到其上的以下代码片段。

$('#show-hidden-tables').click(this.togglePrivateRows_);

这是调用的函数:

togglePrivateRows_: function() {
$('td[data-header="Private"]').each(function(index, elem) {
if ($(this).text() === 'true') $(this).closest('tr').toggle();
});
}

这很好用。但是,如果我将点击处理程序更改为:

$('#show-hidden-tables').click(function(ev) { this.togglePrivateRows_(); }) ;

它不再起作用了。为什么是这样?如果我需要使用ev怎么办?我的函数中的参数?

最佳答案

您需要将函数绑定(bind)到作用域,如下所示:

$('#show-hidden-tables').click(function(ev) {
this.togglePrivateRows_();
}.bind(this));

对于第二个问题“如果我需要在函数中使用 ev 参数怎么办?”

即使在您的第一种方法中,ev 参数也将作为参数传递给您的 this.togglePrivateRows_ 函数

关于javascript - 无法在回调中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32768108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com