Javascript jQuery保存局部变量以供以后在代码中使用
我是否可以在函数外部保存或访问局部变量?考虑下面的代码:Javascript jQuery保存局部变量以供以后在代码中使用,javascript,jquery,variables,get,local,Javascript,Jquery,Variables,Get,Local,我是否可以在函数外部保存或访问局部变量?考虑下面的代码: $( "#droppable2" ).droppable({ activeClass: "ui-state-hover", hoverClass: "ui-state-active", accept: "#draggable3", drop: function( event, ui ) { jdc = $(this).attr("id"); //I
$( "#droppable2" ).droppable({
activeClass: "ui-state-hover",
hoverClass: "ui-state-active",
accept: "#draggable3",
drop: function( event, ui ) {
jdc = $(this).attr("id"); //I need to use this value later
$( this )
.addClass( "ui-state-highlight" );
var x = ui.helper.clone();
x.appendTo('body');
var jdi = $("img").attr("id");// I need to use this value later
$(this).droppable( 'disable' );
}
});
是否需要获取两个变量(上面的jdc和jdi)的值,以便以后在函数外部使用
最终目标是获取可拖放容器的id和已拖放元素的内容。尝试以下操作:
jQuery(element).data(key,value);
// Store arbitrary data associated with the matched elements.
或者在函数外部声明变量
var example;
function abc(){
example = "12345";
}
abc();
console.log(example);
您可以始终将它们作为数据存储在元素上:
$(this).data('jdi', $('img').attr('id'));
然后,您可以通过另一个对“.data()”的调用从该元素获取它:
您可以将它们定义为全局变量Right我不是100%确定,但只要尝试在初始化时不使用var声明,就可以使其成为全局变量。@kobe,谢谢您的回复。如果我将它们定义为全局变量,我是否能够在函数内部局部更改它们的值,并在函数外部获得更新的值?对不起,如果我听起来很幼稚,我是新手。此外,该项目将有三个这样的函数,其中包含局部变量,我需要在脚本中稍后调用这些变量的值。但我想,如果我让这一个函数工作,我可以继续其他函数。谢谢你可以,但正如其他人建议的那样,你可以使用;和Kei负责实施。非常感谢大家。很有魅力DJust要明确(对于任何新手来说,我就是其中之一,这就是我做错的地方),在函数外部声明变量(var example;)并在函数内部定义变量(example=“12345”)是这个答案的关键。如果在函数内部声明并定义变量(var example=“12345”;),则该函数将不起作用-这将仅在本地(函数内部)应用。简而言之,要全局保存局部变量,请在函数外部声明(使用var)并在函数内部定义(不使用var)。
var theSavedJdi = $('whatever').data('jdi');
var jdc;
var jdi;
$( "#droppable2" ).droppable({
activeClass: "ui-state-hover",
hoverClass: "ui-state-active",
accept: "#draggable3",
drop: function( event, ui ) {
jdc = $(this).attr("id"); //I need to use this value later
$( this )
.addClass( "ui-state-highlight" );
var x = ui.helper.clone();
x.appendTo('body');
jdi = $("img").attr("id");// I need to use this value later
$(this).droppable( 'disable' );
}
});