0

I'm trying to make a variable in a function, that I can then redefine using it again in a different function, and I was wanting to use jquery .data to do it but am unsure how.

I have this

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

in the next function I'd like to redefine the id variable...using the previous id variable value, any ideas on how to do this?

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

3 に答える 3

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;
});
于 2013-02-14T02:25:32.357 に答える
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/を確認してください

于 2013-02-14T03:29:58.737 に答える
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をクリックするとin になります。boxes_ GlobalScopeOneConsole.log

于 2013-02-14T04:07:57.387 に答える