gpt4 book ai didi

javascript - OOP 函数中的 jquery 问题

转载 作者:行者123 更新时间:2023-11-29 15:49:59 25 4
gpt4 key购买 nike

您好,我想在我的 OOP 函数中获取隐藏元素的值。这是代码:

var refreshTimeout;
var rms = new RMS();
rms.refresh();

function RMS() {
this.refresh = function(){
alert($("#ids").val());
$.post(refreshUrl, {ids: $("#ids").val()}, function(response){
var result = $.parseJSON(response);

if (result != null) {
$("#rms").attr("value", result.rms);
}

refreshTimeout = setTimeout(function() { rms.refresh(); }, 2000);
});
}
}

问题是 $("#ids").val() 在 firebug 控制台中有效,但在 rms.refresh() 中无效...

我做错了什么?

最佳答案

您对 $('#ids').val() 的调用看起来没问题,只要此时 ​​DOM 已加载(即在 $(document).ready 中() block )。

不过,您的定时器功能看起来有点可疑。你指的是外部范围内的 rms,而你应该指的是当前对象是什么。

同样,您的计时器相关值应该正确封装在类中,否则您不能拥有多个实例。

// class definition - can be loaded anywhere
var RMS = function(ids, rms) {

var self = this;
var timer = null;
var delay = 2000;

this.refresh = function() {
$.post(refreshUrl, {ids: $(ids).val()},
function(response) {
var result = $.parseJSON(response);
if (result != null) {
$(rms).attr("value", result.rms);
}

timer = setTimeout(function() {
self.refresh();
}, delay);
}
);
};
};

// invocation deferred until the DOM is ready
$(document).ready(function() {
var rms = new RMS('#ids', '#rms');
rms.refresh();
});

关于javascript - OOP 函数中的 jquery 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6729958/

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