在jQuery事件中创建全局函数



我有一个函数,调用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"){

修改后,一切正常

相关内容

  • 没有找到相关文章

最新更新