Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery数据设置变量_Jquery_Jquery Data - Fatal编程技术网

使用jquery数据设置变量

使用jquery数据设置变量,jquery,jquery-data,Jquery,Jquery Data,我试图在一个函数中创建一个变量,然后我可以重新定义在另一个函数中使用它,我想使用jquery.data来实现它,但不确定如何实现 我有这个 $(".photo").click(function() { var id = $(this).attr('id'); }); 在下一个函数中,我想重新定义id变量…使用前面的id变量值,有什么想法吗 $("#next").click(function() { var id = $(id).next().attr('id'); }); 答案是

我试图在一个函数中创建一个变量,然后我可以重新定义在另一个函数中使用它,我想使用jquery.data来实现它,但不确定如何实现

我有这个

$(".photo").click(function() {
  var id = $(this).attr('id');
});
在下一个函数中,我想重新定义id变量…使用前面的id变量值,有什么想法吗

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

答案是全局变量,所以结果是这样的:

$(".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;
});

您需要为这两个函数定义新的公共变量作为@loriensleafs的答案

此外,我建议使用闭包来防止范围问题

(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" );
    });
})();

选中

您需要全局定义该变量,以便其他函数可以使用它

样本测试代码

<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>

$(函数()
{
var球镜;
$(“#框”)。单击(函数()
{
GlobalScope=$.trim($(this.html());
});
$(“#框”)。单击(函数()
{
控制台日志(GlobalScope);
});
});
一个
两个
当你点击方框时,它将把
全局范围
变量值设置为
一个
,现在点击
方框后
当你点击
方框时
全局范围
值将在
控制台中
一个
。日志