Javascript 使用jQuery将变量直接传递给$.post()函数
我使用以下Javascript 使用jQuery将变量直接传递给$.post()函数,javascript,jquery,Javascript,Jquery,我使用以下$.post语法从数据库检索json数据,并将其传递给一个函数,该函数将这些数据附加到某个(!)div 我可以,从上面这一行,直接把一个变量传递给我的函数吗? 由于一些小故障,我在脚本中创建了一个bug 我有很多类为“x”的div,当用户选择一个时,它的类被设置为“selected”。上述post请求中的函数只针对以下对象:$('div#selected'),但是,如果在响应通过时用户选择了另一个div,则来自服务器的数据会附加到错误的div 我想将所选div的id传递给我的函数,这样
$.post
语法从数据库检索json数据,并将其传递给一个函数,该函数将这些数据附加到某个(!)div
我可以,从上面这一行,直接把一个变量传递给我的函数吗?
由于一些小故障,我在脚本中创建了一个bug
我有很多类为“x”的div,当用户选择一个时,它的类被设置为“selected”。上述post请求中的函数只针对以下对象:$('div#selected')
,但是,如果在响应通过时用户选择了另一个div,则来自服务器的数据会附加到错误的div
我想将所选div的id传递给我的函数,这样就不会对什么地方发生混淆。有办法吗
现在,我正在考虑将id传递给request.php,并将其作为json的一部分返回,但这并不优雅。如果将函数调用包装到匿名函数,则可以传递所需的任何参数
$.post(
"request.php",
{ var1:'var1', var2:var2, .. },
function( data, textStatus, jqXHR ) {
myownfunction( data, textStatus, jqXHR, myVariable );
},
"json"
);
如果将函数调用包装为匿名函数,则可以传递所需的任何参数
$.post(
"request.php",
{ var1:'var1', var2:var2, .. },
function( data, textStatus, jqXHR ) {
myownfunction( data, textStatus, jqXHR, myVariable );
},
"json"
);
我想将所选div的id传递给我的函数,这样就不会对什么地方发生混淆。有办法吗
是的,您可以使用在单击的div.的上下文中传递,并在函数中使用this.id
访问id的id
$.post("request.php",
{ var1:'var1', var2:var2, .. },
$.proxy(myownfunction, elem), "json" );
在你的职能范围内
function myownfunction( response )
{
....
this.id // here will be the id of the element passed if it is the clicked div then you will get it here
....
}
我想将所选div的id传递给我的函数,这样就不会对什么地方发生混淆。有办法吗
是的,您可以使用在单击的div.的上下文中传递,并在函数中使用this.id
访问id的id
$.post("request.php",
{ var1:'var1', var2:var2, .. },
$.proxy(myownfunction, elem), "json" );
在你的职能范围内
function myownfunction( response )
{
....
this.id // here will be the id of the element passed if it is the clicked div then you will get it here
....
}
如果使用
$.ajax
而不是$.post
,则可以使用其上下文设置来根据需要显式设置回调的此值:
$.ajax('request.php', {
type: 'POST',
data: { ... },
context: mydiv
}).done(myownfunction);
function myownfunction(data) {
var id = this.id; // extracting the element here
...
}
如果使用$.ajax
而不是$.post
,则可以使用其上下文设置来根据需要显式设置回调的此值:
$.ajax('request.php', {
type: 'POST',
data: { ... },
context: mydiv
}).done(myownfunction);
function myownfunction(data) {
var id = this.id; // extracting the element here
...
}
你什么时候发送邮寄请求?单击一个元素时?div包含图像,当用户单击一个div时,它会被放大,此时我发送请求,以便我可以将有关图像的信息附加到div。。但是当用户等待时,他可以单击另一个div…。您何时发送POST请求?单击一个元素时?div包含图像,当用户单击一个div时,它会被放大,此时我发送请求,以便我可以将有关图像的信息附加到div。。但是,当用户等待时,他可以单击另一个div…不,不,不!它是this.id
,而不是$(this.attr('id')
!请了解何时不使用jQuery。您还应该只代理elem
,而不是$(elem)
。如前所述,您为elem
调用jQuery构造函数两次,而根本不需要调用它。@Alnitak您说得对,事实上我在代码上面的语句中提到了这个.id,但在实际代码中没有提到……不,不,不!它是this.id
,而不是$(this.attr('id')
!请了解何时不使用jQuery。您还应该只代理elem
,而不是$(elem)
。如前所述,您为elem
调用了两次jQuery构造函数,但根本不需要调用它。@Alnitak您说得对,事实上我在代码上面的语句中提到了这个.id,但在实际代码中没有提到它……同样感谢您!我试过了,但没用谢谢你!我试过了,但没用s