gpt4 book ai didi

javascript - 为什么这个 jQuery OOP 属性变得未定义?

转载 作者:行者123 更新时间:2023-11-30 16:40:51 29 4
gpt4 key购买 nike

为什么这段代码的属性在点击事件后没有显示?

属性 this.ContainerId 在进入 this.ShoutCount 方法时变为未定义。

谢谢。

var table = function (containerId) {
this.ContainerId = containerId;

this.ShoutCount = function (totalC) {
var label = $("#" + this.ContainerId + " .result").text();
alert(totalC + " " + label);
}
this.ClickCount = function (sc) {
$("#" + this.ContainerId + " .showTotalCount").click(function () {
sc($(this).text());
});
}
this.ClickCount(this.ShoutCount);
}

var t = new table("user-tab-pagination");
<div id="user-tab-pagination">
<div class="search-count"><span class="showTotalCount">100</span> <span class="result">Result(s)</span></div>
</div>

最佳答案

因为一旦您进入 ShoutCount 方法,this 的作用域就是该方法,而不是外部方法。您需要使用 bind 来附加您想要的范围,例如

this.ShoutCount = function (totalC) {
var label = $("#" + this.ContainerId + " .result").text();
alert(totalC + " " + label);
}.bind(this);

关于javascript - 为什么这个 jQuery OOP 属性变得未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32027237/

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