Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JQuery.done()_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何使用JQuery.done()

Javascript 如何使用JQuery.done(),javascript,jquery,html,Javascript,Jquery,Html,我有下面的代码,在函数1的末尾调用函数2 function function1() { var html = ""; html += '<div>'; html += '<button type="button" id="button1">Click Me</button>'; html += '</div>'; $("#element").html(html).done(function2()); }

我有下面的代码,在函数1的末尾调用函数2

function function1() {
    var html = "";
    html += '<div>';
    html += '<button type="button" id="button1">Click Me</button>';
    html += '</div>';

    $("#element").html(html).done(function2());
}


function function2() {
    $("#button1").prop("disabled", true);
}   
函数function1(){
var html=“”;
html+='';
html+=‘单击我’;
html+='';
$(“#元素”).html(html).done(function2());
}
函数function2(){
$(“#按钮1”).prop(“禁用”,真);
}   
但是,这不起作用,控制台抱怨
$(…).html(…).done不是一个函数
。我该怎么办?

该函数是同步的,您不需要任何回调。只需在调用.html()之后调用第二个函数:

这将确保在使用新标记更新元素后执行
function2

该函数是同步的,您不需要任何回调。只需在调用.html()之后调用第二个函数:


这将确保在使用新标记更新元素后执行
function2

获得所需结果的最佳方法是按如下方式构造代码

function function1() {
    var html = "";
    html += '<div>';
    html += '<button type="button" id="button1">Click Me</button>';
    html += '</div>';

    $("#element").html(html);
    function2();
}


function function2() {
    $("#button1").prop("disabled", true);
}

function1();
函数function1(){
var html=“”;
html+='';
html+=‘单击我’;
html+='';
$(“#元素”).html(html);
函数2();
}
函数function2(){
$(“#按钮1”).prop(“禁用”,真);
}
功能1();

获得所需结果的最佳方法是按如下方式构造代码

function function1() {
    var html = "";
    html += '<div>';
    html += '<button type="button" id="button1">Click Me</button>';
    html += '</div>';

    $("#element").html(html);
    function2();
}


function function2() {
    $("#button1").prop("disabled", true);
}

function1();
函数function1(){
var html=“”;
html+='';
html+=‘单击我’;
html+='';
$(“#元素”).html(html);
函数2();
}
函数function2(){
$(“#按钮1”).prop(“禁用”,真);
}
功能1();

您希望用它实现什么?@SergioTulentsev我打算使用function2禁用function1创建的一些按钮。这里的代码经过简化,以显示.done()@SergioTulentsev的问题。请参阅更新后的帖子。是的,请参阅Darin的答案。您希望用它实现什么?@SergioTulentsev我将使用function2禁用function1创建的一些按钮。这里的代码经过简化以显示.done()@SergioTulentsev的问题。请查看更新的postyeah,查看Darin的答案。您能给我指一下官方文档,其中说明.html()是同步的吗?当然,我的答案中已经有一个链接指向此方法的官方文档。谢谢,但我指的是声明.html()是同步的文档?官方文档说明此方法使用一个字符串参数并返回jQuery对象。它不接受任何回调,也不返回承诺。因此,您可以更安全地得出结论,这种方法是同步的。异步方法必须始终为调用方提供一种订阅异步操作结果的方式。
html()
方法的情况并非如此。另外,jQuery是开源项目,因此如果您不信任官方文档,请毫不犹豫地签出源代码。您能给我指一下官方文档,其中说明.html()是同步的吗?当然,我的答案中已经有一个链接指向此方法的官方文档。谢谢,但我指的是声明.html()是同步的文档?官方文档说明此方法使用一个字符串参数并返回jQuery对象。它不接受任何回调,也不返回承诺。因此,您可以更安全地得出结论,这种方法是同步的。异步方法必须始终为调用方提供一种订阅异步操作结果的方式。
html()
方法的情况并非如此。此外,jQuery是开源项目,因此如果您不信任官方文档,请毫不犹豫地签出源代码。