使用jquery数据设置变量

时间:2013-02-14 02:00:54

标签: jquery jquery-data

我正在尝试在函数中创建一个变量,然后我可以在另一个函数中重新定义它,并且我想使用jquery .data来做它但不确定如何。

我有这个

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

在下一个函数中我想重新定义id变量...使用前面的id变量值,关于如何做到的任何想法?

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

3 个答案:

答案 0 :(得分: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;
});

答案 1 :(得分: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/

答案 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 { {1}}中的{1}}。