jQuery保存局部变量以供稍后在代码中使用

Sol*_*Sol 13 javascript variables jquery get local

无论如何,我可以保存或访问其功能之外的局部变量吗?请考虑以下代码:

$( "#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' );
        }
    });
Run Code Online (Sandbox Code Playgroud)

无论如何都要获取两个变量的值(上面的jdc和jdi)以供以后在函数外使用?

最终目标是获取droppable容器的id和drop元素的内容.

小智 20

试试这个:

jQuery(element).data(key,value);
// Store arbitrary data associated with the matched elements.
Run Code Online (Sandbox Code Playgroud)

或在函数外声明您的变量.

var example;

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

abc();

console.log(example);
Run Code Online (Sandbox Code Playgroud)

  • 只是为了明确(对于那里的任何新手 - 我是一个,这就是我做错了),在函数外声明变量(var example;)并在函数内定义变量(example ="12345";)是这个答案的关键.如果在函数内部声明+定义变量(var example ="12345";),它将无效 - 这将仅在本地(在函数内)应用.简而言之,要全局保存局部变量,请在函数外部声明(使用var)并在函数内定义(不要使用var). (2认同)