繁体   English   中英

Javascript全局变量在jQuery Droppable中不起作用

[英]Javascript global variable doesn't work in jQuery Droppable

这必须是一些例外,因为我很确定它应该工作:

var myvar; // global variable

function draggableinit(e, ui){
    console.log(myvar); // still defined here
    jQuery('.drop-div').droppable({
        deactivate: function(event, ui){
            console.log(myvar); // why undefined?
        }
    });
}

function set(){
    var myvar = jQuery('.cont').resizable({
        start: function(event, ui) {  },
        resize: function(event, ui) {  },
        stop: function(event, ui) { // functions to manipulate size  }
    });
    return myvar;
}

jQuery(document).ready(function(){
    myvar = set();
    jQuery('.some-div').draggable({
        "start": draggableinit
    });
});

我想知道为什么myvar在那个地方myvar定义? 不应该从任何地方访问?

文档: http//jqueryui.com/draggable/

将其直接分配给window以排除范围冲突。 这应该工作。 在预期范围之外创建var foo不会自动使其成为“全局”,只是对该范围块和嵌套范围是全局的。

function draggableinit(e, ui){
    jQuery('.drop-div').droppable({
        deactivate: function(event, ui){
            console.log(window.myvar); // why undefined?
        }
    });
}

jQuery(document).ready(function(){
    window.myvar = 123;
    jQuery('.some-div').draggable({
        "start": draggableinit
    });
});

你正在为你的脚本创建全局 - 而不是nessecarily全局所有脚本。 windowdocument创建它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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