2

変数を他のコールバック関数で使用できるようにしたいと思います。

$(function(){
    $("#home_sec_2 img").attr("id", function (arr) {
        return arr;
    });
    $('#home_sec_2').on('mouseover','img',function(){
        position = $(this).position().left;
        var $ll = $(this).prev();
        console.log($ll);
        /* $ll.css({left: position}); */
        $ll.css({left:position});

        $ll.addClass('shown');
        $ll.stop().slideToggle('slow');
        var $this = $ll;
        console.log(position);
        var pp = $ll.position();
        console.log(pp);
    }),     
    $('#home_sec_2').on('mouseleave','img',function(){
        /* $ll = $(this).attr('id');     */
        **var $img = $(this).prev()**
        $img.slideToggle('slow');
         console.log($img);
    })
}); 

変数がオンになっている$imgアクセス方法を利用できるようにしたい。

4

2 に答える 2

2

では、グローバル変数を作ってみませんか?

<script>
 var your_var;
  $('#home_sec_2').on('mouseover','img',function(){
    your_var = 'some initialization';
  });
  $('#home_sec_2').on('mouseleave','img',function(){
    alert(your_var);
  });
</script>
于 2012-12-20T05:14:37.667 に答える
2

のスコープを変更して$img、そのバインディングの外側にあり、ドキュメントのすぐ下にあるようにします。例えば

$(function(){
  // declare $img scope here
  var $img;

  /*
    other code
    ...
    if ($img) { ... }
    ...
  */

  $('#home_sec_2').on('mouseleave','img',function(){
    // assign it here
    $img = $(this).prev();
  });
});

他の場所で使用する前にテストするかif($img)、デフォルト値を設定してください。

于 2012-12-20T02:38:20.620 に答える