如何使用变量" i"和另一个函数中的值," izq"和" der"? 我需要在其他函数中使用变量。
$("#gal li a").on('click', openImg);
function openImg(e){
e.preventDefault();
var href = $(this).attr('href');
i = $(this).parent().index();
$("#overlay").fadeIn();
$("#overlay #cont_img img").attr('src', href);
}
$(".izq").on('click', function(e){
e.preventDefault();
var izq;
i--;
if(i < 0){
i = total-1;
}
izq = $("#galeria li a").eq(i).attr('href');
$("#overlay #cont_img img").attr('src', izq);
});
$(".der").on('click', function(e){
e.preventDefault();
var der;
i = (i-1) % total;
der = $("#gal li a").eq(i).attr('href');
$("#overlay #cont_img img").attr('src', der);
});
答案 0 :(得分:1)
将变量设为全局 - 将其置于全局范围 - http://www.w3schools.com/js/js_scope.asp
答案 1 :(得分:0)
如果您将var i
置于这些功能之外,您应该能够在所有功能中使用它
答案 2 :(得分:0)
最好能在全局范围内将变量声明为函数。
$("#gal li a").on('click', openImg);
var i=0;
function openImg(e){
e.preventDefault();
var href = $(this).attr('href');
i = $(this).parent().index();
$("#overlay").fadeIn();
$("#overlay #cont_img img").attr('src', href);
}
$(".izq").on('click', function(e){
e.preventDefault();
var izq;
i--;
if(i < 0){
i = total-1;
}
izq = $("#galeria li a").eq(i).attr('href');
$("#overlay #cont_img img").attr('src', izq);
});
$(".der").on('click', function(e){
e.preventDefault();
var der;
i = (i-1) % total;
der = $("#gal li a").eq(i).attr('href');
$("#overlay #cont_img img").attr('src', der);
});
答案 3 :(得分:0)
虽然您可以使i
成为全局范围内的变量。但这可能会导致冲突。
更好的方法是使用namespace
模式。
例如
创建一个对象
var myGlobalVariables ={};
现在您可以为此对象添加密钥。
function openImg(e){
e.preventDefault();
var href = $(this).attr('href');
myGlobalVariables.i = $(this).parent().index();
$("#overlay").fadeIn();
$("#overlay #cont_img img").attr('src', href);
}
在所有其他功能中,您可以使用相同的object & key
。在其他功能中,您可以使用var m = myGlobalVariables.i;
答案 4 :(得分:0)
您可以将变量设为全局变量,将它们用作更高范围内的对象的一部分等,或者您可以使用闭包
// prints 0..9
for(var i = 0; i < 10; i++) { console.log(i); };
// any amount of other operations
// prints 10 three times
for(var z = 0; z < 10; z++) { console.log(z); };
您可以详细了解这些内容here