问题
Is there anyway that I can save or access a local variable outside of it's function? Consider the code below:
$( "#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' );
}
});
Is there anyway to get the values of the two variables (jdc and jdi above) for later use outside of the function?
The ultimate goal is to get id of droppable container and content of dropped element.
回答1:
try this:
jQuery(element).data(key,value);
// Store arbitrary data associated with the matched elements.
or declare your variable outside the function.
var example;
function abc(){
example = "12345";
}
abc();
console.log(example);
回答2:
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' );
}
});
回答3:
You could always just store them as data on the element:
$(this).data('jdi', $('img').attr('id'));
Then you can get it back from that element with another call to ".data()":
var theSavedJdi = $('whatever').data('jdi');
来源:https://stackoverflow.com/questions/6180077/jquery-save-local-variable-for-use-later-on-in-the-code