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

更改范围,$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 回答
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 回答