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' );
    }
});