我有一个函数,调用POST事件的php脚本与2个方法。一种是在document.ready
之后调用以返回Id。第二个我想要发送那个Id给第二个方法它将从那个Id中找到所有附加。
第一个方法可以工作,但第二个方法不起作用。我可以从jquery函数事件中创建一个全局变量吗,例如
... function(data){
Record=Data;
}
这是创建全局变量的方法吗?
我代码:function getAttachRecords(metodo, id){
RegId = "";
jQuery.ajax({
type: "GET",
async: true,
url: "source/getAttchRecord.php",
data:{method: metodo, id: id},
cache: true,
dataType: "html",
contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15",
success: function(data,textStatus,jqXHR){
if(metodo ="truncRecord"){
RegId = data;
$('#file_upload').uploadify({
'formData' : {
'timestamp' : '<?php echo time();?>',
'token' : '<?php echo md5("unique_salt" . $timestamp);?>',
'registo' : RegId
},
'uploader' : 'source/uploadify/upload.php',
'swf' : 'source/uploadify/uploadify.swf',
'script' : 'source/uploadify/upload.php',
'cancelImg' : 'source/uploadify/cancel.png',
'folder' : 'source/uploadify/uploads',
'auto' : true,
'onSelect': function(){
$("#table_content").slideUp();
},
'onQueueComplete' : function() {
$("#table_content").slideDown();
getAttachRecords("getAttachRecords", RegId);
}
});
}else{
alert(data);
$("table").find("#table_content").html(data);
}
}
});
}
window
应该始终在作用域中,所以只需添加您的变量:
//alert(bar); // `foo` is undefined up here
(function(){
(function(){
(function(){
// some nested scope
window.foo = 'bar';
})();
})();
})();
alert(foo); // `foo` now contains 'bar'
只是要小心,因为(尤其是ajax)它不保证可用,当你去使用它,所以最好检查它:
if (typeof foo !== 'undefined'){
alert(foo);
}
但是,你也可以在进入作用域之前定义它:
var foo;
(function(){
(function(){
(function(){
// some nested scope
foo = 'baz';
})();
})();
})();
alert(foo); // 'baz'
只需在回调函数或其他包装函数之外初始定义它:
var Record;
function getNewRecord () {
Record = 'new data';
}
也就是说,如果这个值是由回调设置的,你将无法确定这个值何时更新,除了从成功函数或触发一些其他事件/回调。
我找到问题了
如果(metodo ="truncRecord"){
这个if语句是错误的,应该是:
如果(metodo = ="truncRecord"){
修改后,一切正常