gpt4 book ai didi

javascript - 在函数返回值之前保存空变量

转载 作者:行者123 更新时间:2023-12-03 05:54:00 25 4
gpt4 key购买 nike

我正在尝试使用以下查询保存数据

var content = framejson($(e.target));
//alert(wpId);
var dfd = $.Deferred();
setTimeout(function(){
saveWebPartProperties(wpId, { Description: content }).done(function () {
dfd.resolve();
$(e.target).closest("table").find(".successmessage").show();
}).fail(self.error);
},500);

framejson的代码如下

function framejson(elem){
var listname={};
listname["Name"] = $(elem).closest("table").find(".Name").val();
listname["Length"] = $(elem).closest("table").find(".Length").val();
return JSON.stringify(listname);
};

现在,在我尝试保存 json 内容的代码中,当我删除警报或删除 setTimeout 时,会保存空值

只有当我有警报或setTimeout或者通过控制台调试时它才能正常工作

我还尝试使用 deferredwhen 但它不起作用。只有 setTimeout 才能使其工作,我试图理解为什么

var content = $.Deferred();
content.resolve(framejson($(e.target)));
$.when(content).done(function(){
var dfd = $.Deferred();
saveWebPartProperties(wpId, { Description: content }).done(function () {
dfd.resolve();
$(e.target).closest("table").find(".successmessage").show();
}).fail(self.error);
});

导致此问题的错误是什么?

最佳答案

正如您在这段代码中看到的,这工作得很好。所以我猜你的问题不在这个显示的代码中。

$(".test").on('click', function(e){
var content = framejson(e.target);
console.log(content)
});

function framejson(elem){
var listname={};
listname["Name"] = $(elem).closest("table").find(".Name").val();
listname["Length"] = $(elem).closest("table").find(".Length").val();
return JSON.stringify(listname);
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td><input class="Name" value="bla" /></td>
<td><input class="Length" value="ert" /></td>
<td><button class="test">test</button></td>
</tr>
</table>

关于javascript - 在函数返回值之前保存空变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40018134/

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