我正在尝试在函数中创建一个变量,然后我可以在另一个函数中重新定义它,并且我想使用jquery .data来做它但不确定如何。
我有这个
$(".photo").click(function() {
var id = $(this).attr('id');
});
在下一个函数中我想重新定义id变量...使用前面的id变量值,关于如何做到的任何想法?
$("#next").click(function() {
var id = $(id).next().attr('id');
});
答案 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" );
});
})();
答案 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}}。