[英]Passing variables within variables?
我有一个看起来像这样的ajax函数(基本上,它是简化的):
function getPage(targetURL, targetID, dataMethod, dataStream) {
$.ajax({
type: dataMethod,
data: { dataStream },
url: '../' + targetURL,
success:
function(server_response) {
$('#' + targetID).html(server_response).show();
}
});
return false;
}
然后我想调用这样的函数:
onclick="getPage('myPage.php', 'content', 'GET', 'someAction: add');"
这非常好......但是现在函数认为add是一个变量......但在某些情况下,我需要在onClick中声明someAction值,如下所示:
onclick="getPage('myPage.php', 'content', 'GET', 'someAction: "add"');"
然而,这当然不起作用......也没有当然:
onclick="getPage('myPage.php', 'content', 'GET', 'someAction: \"add\"');"
那么聪明人会做什么呢?
这是因为您正在混合字符串和对象。 为了做我认为你想做的事情,你应该调用这样的函数:
onclick="getPage('myPage.php', 'content', 'GET', { someAction: 'add' });"
即,你传递一个对象作为第四个参数,而不是一个字符串,那么,在你的函数中,你应该按原样对待该对象,即
$.ajax({
type: dataMethod,
data: dataStream,
url: '../' + targetURL,
// ...
你将dataStream
作为字符串传递,你不应该 - 它应该是一个对象文字:
function getPage(targetURL, targetID, dataMethod, dataStream) {
$.ajax({
type: dataMethod,
data: dataStream ,
url: '../' + targetURL,
success:
function(server_response) {
$('#' + targetID).html(server_response).show();
}
});
return false;
}
接着:
onclick="getPage('myPage.php', 'content', 'GET', {someAction: add});"
要么
onclick="getPage('myPage.php', 'content', 'GET', {someAction: \"add\"});"
它期待一个对象,所以给它一个:
onclick="getPage('myPage.php', 'content', 'GET', {someAction: add});"
然后在函数内部:
data: dataStream,
没有牙套
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.