0

次のコードがあります。

var options = [
    '#content',
    'h5'                     
];

var elements = [];

for(a in options){
    elements[a] = {
        'handle':  $(options[a]),
        'ref_copy': $(options[a])
    };

    elements[a].handle.hover(
        function(){
            elements[a].handle.css(
                'border', '1px dashed red'
            );
        },
        function(){
            elements[a].handle.css(
                'border', elements[a].ref_copy.css('border');
            );
        }
    );
}

要素の境界線を赤くするのはなぜですか..しかし、呼び出しelements[a].ref_copyても変換されませんか?

編集://

なぜ私はこれをしなければならないのですか:

            var options = [
                '#content',
                'h5'                      
            ];

            var elements = [];

            for(a in options){
                elements[a] = {
                    'handle':  $(options[a]),
                    'ref_copy': new Object
                };

                elements[a].ref_copy = elements[a].handle.clone(); 

                elements[a].handle.hover(
                    function(){
                        elements[a].ref_copy = $(this).clone(); 
                        $(this).css(
                            'border', '1px dashed red'
                        );
                    },
                    function(){
                        $(this).css(
                            'border', elements[a].ref_copy.css('border')
                        );
                    }
                );
            }

ここのメカニックは何ですか?

4

0 に答える 0