我想将“数据”变量移出其他操作的成功函数。
$("a[class=note]").click(function( evt ){
var note = $(this).attr("value");
var preid = $(this).attr("id");
$.ajax({
type: 'GET',
url: 'style/ajax.php',
data: 'do=note&value=' + note + '&preid=' + preid,
success: function(data)
{
alert(data);
}
});
});
例如php有Global
pharase ..
答案 0 :(得分:2)
$("a[class=note]").click(function( evt ){
var note = $(this).attr("value");
var preid = $(this).attr("id");
$.ajax({
type: 'GET',
url: 'style/ajax.php',
data: 'do=note&value=' + note + '&preid=' + preid,
success: function(data)
{
window.data = data;
}
});
});
当然,在回调开始之前你不能使用它。
答案 1 :(得分:2)
在所有代码之上定义var data = null;
,这将是全局变量。之后,重命名流程函数的参数和函数体window.data = response;
。
修改强>
您可以定义触发数据更改的功能,例如:
var data = null;
function setGlobal(v) {
window.data = v;
alert(window.data);
}
$("a[class=note]").click(function( evt ){
var note = $(this).attr("value");
var preid = $(this).attr("id");
$.ajax({
type: 'GET',
url: 'style/ajax.php',
data: 'do=note&value=' + note + '&preid=' + preid,
success: function(data){
setGlobal(data);
}
});
});
试试吧......
答案 2 :(得分:2)
全局变量(这是更糟糕的解决方案,但这是你要求的):
$("a.note").click(function( evt ){
var note = $(this).attr("value");
var preid = $(this).attr("id");
$.ajax({
type: 'GET',
url: 'style/ajax.php',
data: 'do=note&value=' + note + '&preid=' + preid,
success: function(data)
{
window.data = data;
alert(data);
}
});
});
全局变量是危险的,也许在成功范围之外变量就足够了?
在success
回调之外的Var:
$("a.note").click(function( evt ){
var note = $(this).attr("value");
var preid = $(this).attr("id");
var dataFromServer = null;
$.ajax({
type: 'GET',
url: 'style/ajax.php',
data: 'do=note&value=' + note + '&preid=' + preid,
success: function(data)
{
dataFromServer = data;
alert(data);
}
});
});
最后一个选项是拥有一个隐藏的输入来存储数据;
success: function(data)
{
$('#hiddenFieldId').val(data);
alert(data);
}
需要注意的事项:
a[class=note]
更改为a.note
,这样更好。success
是回调,这意味着在响应到达客户端之前不会触发,直到那时你的global \ outside var \ hidden输入值将为null。如果您不希望ajax
为asynchronous
,可以在以下选项中进行定义: $.ajax({
async: false, // <---
type: 'GET',
url: 'style/ajax.php',
data: 'do=note&value=' + note + '&preid=' + preid,
success: function(data)
{
dataFromServer = data;
alert(data);
}
});