2013-02-14 101 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