javascript - 这个 JavaScript 是如何工作的?

标签 javascript jquery jquery-load jquery-post

我是一个 javascript 菜鸟,我不明白为什么它会起作用:

$().load('/my/url/', {my:data, more:data}, jsFunc());

function jsFunc()
{
    $("#myid").val("yep");
}

但不是这个:

$().load('/my/url/', {my:data, more:data}, function() {jsFunc()});

function jsFunc()
{
    $("#myid").val("yep");
}

我尝试使用 $.ajax 而不是 $.load 得到相同的结果。我将把响应数据传递给 jsFunc(),这就是为什么我需要在函数内使用 jsFunc() 。我确信这很简单,我只是对 javascript 不太有经验。谢谢。

再次感谢您的帮助。我决定使用 $.post 因为它最适合这种情况,但现在我在处理响应数据时遇到了问题。我的代码如下所示:

$.post('/my/url/', {my:data, more:data}, function(data) {
    var strung = JSON.stringify(data)
    var parse = jQuery.parseJSON(strung)
    console.log(parse.some);}, 'json');

我正在登录控制台以查看现在返回的内容,当我看到记录的正确值时,我将添加回调。我从 jQuery api 页面获取的过程,但它只会记录 undefined。当我将 parse.some 更改为 parse 时,控制台日志将显示对象,我可以选择一个元素并查看正确的键:值对。任何帮助都会很甜蜜。

最佳答案

两者都不起作用。第一个似乎可以工作,因为您立即调用函数 jsFunc,它不会等待任何响应。

如果您使用 $() 创建一个空的 jQuery 对象并对其使用 load 方法,它不会调用服务器,因为没有元素可以调用它可以把结果放出来。

要指定回调函数,您可以使用函数名称:

$('#someElement').load('/my/url/', {my:data, more:data}, jsFunc);

或函数表达式:

$('#someElement').load('/my/url/', {my:data, more:data}, function() { jsFunc(); });

关于javascript - 这个 JavaScript 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14710396/

相关文章:

javascript - d3 中折线图的 x 轴上带有额外刻度的错误日期打印

javascript - 按字母顺序组织 JSON 数据

javascript - 简单的加仑计算器

javascript - 光滑的 slider 没有正确循环

jquery - 检查是否选择了正确的选项值

jquery - 使用带有 Promise 的 jQuery 加载

javascript - mapStateToProps 不更新

php - 使用 ajax/jquery 模拟 html 表单 POST

javascript - JS 脚本不适用于使用 jQuery 的 .load() 加载的 div

jquery - 使用 jQuery 将具有相对路径的外部 HTML 页面加载到 DIV 中