我有一个看起来像这样的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\"');"
那么聪明人会做什么?
答案 0 :(得分:1)
这是因为你正在混合字符串和对象。 为了做我认为你想做的事,你应该调用这样的函数:
onclick="getPage('myPage.php', 'content', 'GET', { someAction: 'add' });"
,即你传递一个对象作为第四个参数,而不是一个字符串,那么,在你的函数中,你应该按原样处理该对象,即
$.ajax({
type: dataMethod,
data: dataStream,
url: '../' + targetURL,
// ...
答案 1 :(得分:1)
你将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\"});"
答案 2 :(得分:1)
它期待一个物体,所以给它一个:
onclick="getPage('myPage.php', 'content', 'GET', {someAction: add});"
然后在函数内部:
data: dataStream,
没有大括号