JQuery сохранить локальную переменную для использования позже в коде
В любом случае я могу сохранить или получить доступ к локальной переменной вне ее функции? Рассмотрим следующий код:
$( "#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 выше) для последующего использования вне функции?
Конечная цель состоит в том, чтобы получить идентификатор droppable контейнера и содержимого отброшенного элемента.
Ответы
Ответ 1
попробуйте следующее:
jQuery(element).data(key,value);
// Store arbitrary data associated with the matched elements.
или объявите переменную вне функции.
var example;
function abc(){
example = "12345";
}
abc();
console.log(example);
Ответ 2
Вы всегда можете просто хранить их как данные элемента:
$(this).data('jdi', $('img').attr('id'));
Затем вы можете вернуть его из этого элемента с помощью другого вызова ".data()":
var theSavedJdi = $('whatever').data('jdi');
Ответ 3
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' );
}
});