繁体   English   中英

如何异步更新Javascript中动态生成的HTML控件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM