Затем вы можете получить его обратно из этого элемента с помощью другого вызова «.data ()»:

ом случае я могу сохранить или получить доступ к локальной переменной за пределами ее функции? Рассмотрим код ниже:

$( "#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 выше) для последующего использования вне функции?

Конечная цель - получить идентификатор сбрасываемого контейнера и содержимое отброшенного элемента.

 kobe30 мая 2011 г., 22:06
вы можете, но, как другие предложили, вы можете использовать .data
 Sol30 мая 2011 г., 21:41
@kobe, спасибо за ответ. Если я определю их как глобальную переменную, смогу ли я изменить их значения локально внутри функции и получить обновленное значение вне функции? Извините, если я звучу наивно, я новичок в этом. Также в проекте будет около трех таких функций с локальными переменными, значения которых мне нужно будет вызвать позже в скрипте. Но я подумал, что если я получу эту функцию, я смогу перейти к другим. Спасибо
 kobe30 мая 2011 г., 21:33
Вы можете определить их как глобальную переменную справа
 stefgosselin30 мая 2011 г., 21:36
Я не уверен на 100%, но просто попробуйте не объявлять с var при инициализации, это должно сделать его глобальным.

Ответы на вопрос(3)

Решение Вопроса

попробуй это:

jQuery(element).data(key,value);
// Store arbitrary data associated with the matched elements.

или объявите вашу переменную вне функции.

var example;

function abc(){
   example = "12345";
}

abc();

console.log(example);
 Pointy30 мая 2011 г., 21:39
Великие умы, чувак. Великие умы.
 Luke26 янв. 2015 г., 23:18
Просто чтобы быть явным (для любого новичка там - я один, и это то, что я делал неправильно), объявляя переменную (var example;) вне функции и определяя переменную (example = "12345";) внутри функции это ключ к этому ответу. Это не будет работать, если вы объявите + определите переменную (var example = "12345";) внутри функции - это будет применяться только локально (внутри функции). Короче говоря, чтобы сохранить локальную переменную глобально, объявите (используйте var) вне функции и определите (не используйте var) внутри функции.

$(this).data('jdi', $('img').attr('id'));

Затем вы можете получить его обратно из этого элемента с помощью другого вызова «.data ()»:

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' );
    }
});
 Sol30 мая 2011 г., 22:23
Спасибо за инициативу Томас; и Кей для реализации. Массовое СПАСИБО всем. Работает как шарм. : D

Ваш ответ на вопрос