【问题标题】:setting a variable with jquery data使用 jquery 数据设置变量
【发布时间】:2013-02-14 02:00:54
【问题描述】:

我正在尝试在函数中创建一个变量,然后我可以在不同的函数中重新定义它,我想使用 jquery .data 来执行此操作,但不确定如何。

我有这个

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

在下一个函数中,我想重新定义 id 变量...使用之前的 id 变量值,有什么想法吗?

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

【问题讨论】:

    标签: jquery jquery-data


    【解决方案1】:

    答案是全局变量,所以最终是这样的:

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

    【讨论】:

      【解决方案2】:

      您需要定义该变量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 值将是 One in Console.log

      【讨论】:

        【解决方案3】:

        您需要为这两个函数定义新的公共变量作为@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/

        【讨论】:

          猜你喜欢
          • 2021-02-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-19
          • 1970-01-01
          • 2011-12-29
          • 1970-01-01
          相关资源
          最近更新 更多