2013-02-14 81 views
0

我想在一个函数中做一个变量,然后我可以重新定义在不同的函数中再次使用它,我想用jquery .data来做到这一点,但我不确定如何。用jQuery数据设置一个变量

我有这个

$(".photo").click(function() { 
    var id = $(this).attr('id'); 
}); 
在我想重新定义id变量的一个函数

...使用以前的ID变量值,就如何做到这一点任何想法?

$("#next").click(function() { 
    var id = $(id).next().attr('id'); 
}); 

回答

0

答案是全局变量,所以它结束了是这样的:

$(".photo").click(function() { 
    id = $(this).attr('id'); 
}); 

$("#next").click(function() { 
     var id_a = $('#' + id).next().attr('id'); 
     id = id_a; 
}); 

$("#prev").click(function() { 
     var id_b = $('#' + id).prev().attr('id'); 
     id = id_b; 
}); 
0

您需要定义新的公共变量两种功能为@ loriensleafs的答案。

另外,我建议使用Closure来防止范围问题。

(function() { 
    var id; // common value but canb be accessed only in this function. 

    $(".button").click(function() { 
     id = $(this).attr('id'); 
    }); 

    $("#output").click(function() { 
     $("p").css("background", "none"); 
     $("div").find('#' + id).css("background", "red"); 
    }); 
})(); 

检查http://jsfiddle.net/cwdoh/G2RjH/2/

0

您需要定义一个变量globally所以其他功能可以使用它。

样品测试的代码

<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript"> 

    $(function() 
    { 
     var GlobalScope; 

     $('#boxes').click(function() 
     { 
      GlobalScope = $.trim($(this).html()); 
     }); 

     $('#boxes_').click(function() 
     { 
      console.log(GlobalScope); 
     }); 
    }); 

</script> 

<div id="boxes"> 
    One 
</div> 

<div id="boxes_"> 
    Two 
</div>

当你点击复选框,将设置GlobalScope变量值One现在点击boxes后,当你在boxes_GlobalScope值单击将在Console.logOne