[英]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
定义? 不应该从任何地方访问?
将其直接分配给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全局所有脚本。 在window
或document
创建它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.