gpt4 book ai didi

javascript - 我如何将 "this"放入此函数... jquery slider

转载 作者:行者123 更新时间:2023-12-01 02:20:40 25 4
gpt4 key购买 nike

我有类似以下内容:

MyShape = function() {

var _container = {
width: 100,
height: 100
}


this.draw() {
//do stuff...
}

$('#slider-1').bind('change', function(event, ui) {

_container.width = $('#slider-1').val();
this.draw();

});


};

我使用 jquery slider 动态更改形状的宽度,然后调用 .draw() 重新绘制形状。但我不断收到此错误:

Uncaught TypeError: Object # has no method 'draw'

我相当确定这是因为我需要将上下文“this”传递到更改函数中,但我似乎不知道如何做到这一点。

最佳答案

这是因为 JavaScript's this is dynamic 造成的.

您可以像这样使用Function.prototype.bind:

$('#slider-1').on('change', function(event, ui) {

_container.width = $('slider-1').val();
this.draw();

}.bind(this) /* use the same this value */);

或者你可以使用闭包变量

var that = this;
$('#slider-1').on('change', function(event, ui) {

_container.width = $('slider-1').val();
that.draw();

});

关于javascript - 我如何将 "this"放入此函数... jquery slider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21097977/

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