我正在创建一个图库,当我点击一个按钮时,我可以滚动到下一个图像。
我也可以选择“跳转”到特定图像。一切正常。
但是,如果我定期滚动到图像3,然后跳转到图像7.一旦我点击下一个按钮,我不会像我想的那样去图像8 - 我去图像4.因为有两个单独的函数,我不能/不知道如何在它们之间传递变量。我知道我可以在两个函数之外使用全局变量,但这似乎是不鼓励的。
以下是一个例子:
var i = 0;
// i is a global variable
$("#next_button").click(function(){
$(".all_images").eq(i).show();
i++;
});
这会正确地增加我的所有图像。
$(".thumbnails").click(function(){
var x = $(this).index();
$(".all_images:visible").hide();
$(".all_images").eq(x).show();
i = x;
});
这显示了相对于我点击的缩略图的图像。
那么,如何使用第二个函数中第一个函数的'i'变量?这一直困扰着我。使用全局变量似乎更简单,因此每个函数都可以更改i的值并在必要时使用它。请赐教。
另外,据我所知,可以将JQuery代码包装在常规JavaScript函数中。但是,当我在常规JavaScript函数中包装JQuery .click时,我的代码似乎不起作用(即my_Function(){.... $(“#something”)。点击....}
有人可以解释我做错了吗?
答案 0 :(得分:1)
在大多数编程语言中,您有两种选择:
但是,你不能真正地创建某种全局变量(对象或原始),所以我建议你创建一个对象(甚至是键值)来保存你所有的程序参数。
为了做到这一点,您可以使用像这样的.data方法将数据分配给任意元素:
setter :
$('body').data('myvar','value');
getter:
$('body').data('myvar');
请参阅:http://api.jquery.com/jQuery.data/
为了通过引用传递,您需要传递一个对象而不是一个基元。 有关详细信息,请参阅以下链接: