这个javascript是如何工作的?

这个javascript是如何工作的?,javascript,jquery,jquery-load,jquery-post,Javascript,Jquery,Jquery Load,Jquery Post,我是一个javascript noob,我不明白为什么会这样: $().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

我是一个javascript noob,我不明白为什么会这样:

$().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');

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

第一个代码块将简单地调用jsFunc(),并将结果作为参数返回给load(..)方法,这很奇怪,因为该参数应该是一个回调函数,在加载完成时触发,但这样行吗?回调语法更符合第二个示例(我相信您所说的那个示例不起作用)

第一个代码块将简单地调用jsFunc(),并将结果作为参数返回给load(..)方法,这很奇怪,因为该参数应该是一个回调函数,在加载完成时触发,但这样行吗?回调语法更符合第二个示例(我相信您所说的那个示例不起作用)

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

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

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

$('#someElement').load('/my/url/', {my:data, more:data}, jsFunc);
或函数表达式:

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

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

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

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

$('#someElement').load('/my/url/', {my:data, more:data}, jsFunc);
或函数表达式:

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

对我的第二部分的答复:


我返回的JSON数据由许多对象组成,因此我必须指定索引和键以获取要返回的值。

回答我的第二部分:


我返回的JSON数据由许多对象组成,因此我必须指定索引和键来获取要返回的值。

加载(func)与
加载(func())
$().load('/my/url/',{my:data,more:data},jsFunc())不应该真正“起作用”。您正在立即执行
jsFunc
,并将返回值(未定义的
作为回调传递给
.load
load(func)之间存在差异
加载(func())
$().load('/my/url/',{my:data,more:data},jsFunc())不应该真正“起作用”。您正在立即执行
jsFunc
,并将返回值(未定义的
)作为回调传递给
.load
。感谢您为我解释这一点。这很有帮助。谢谢你为我解释。这很有帮助。