[英]How to asynchronously update dynamically generated HTML control in Javascript
我有一个方法getTextContent
,它将通过用户的点击间接调用(方法getTextContent
传递给在某个事件中注册它的API函数)。
该方法返回的字符串只是HTML的字符串,然后在API生成的控件中显示给用户。
我想做的是异步更新HTML控件之一。 我相信我可以创建一个uniqueID并用该ID为HTML控件命名,以供更改参考。
我的困扰是:如何将唯一ID传递到Web服务的返回/成功方法( SucceededCallback
)。
Webservice1.Foo(param1, SucceededCallback, FailedCallback);
所以我有一个像
function SucceededCallback(result, uniqueID) {
document.getElementById(uniqueID).value = result;
}
我想我可以创建一个全局变量,但这似乎不合适
您可以使用Function.prototype.bind
将上下文绑定到函数。
Webservice1.Foo(param1, SucceededCallback.bind(uniqueID), FailedCallback.bind(uniqueID));
那么该函数将是:
function SucceededCallback(result) {
document.getElementById(this).value = result;
}
或者您可以使用闭包:
Webservice1.Foo(param1, function(result) {
SucceededCallback(result, uniqueID);
}, function(result) {
FailedCallBack(result, uniqueID);
});
另外,除了传递ID之外,您还可以传递DOM元素本身,因此不必调用getElementById
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.