繁体   English   中英

在变量中传递变量?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM