-2 html javascript css jquery
我把它缩小到声明' position'' 的界限
$(document).ready(function(){
var sliders = new Array("#left","#middle","#right");
var links = new Array("#fLink","#sLink","#tLink");
$(".link").click(function(){
var position = $("#" + sliders[links.indexOf("#" + this.id)]).position().left();
alert(position);
$(".slider").animate({left:gap}, 1500);
});
});
Run Code Online (Sandbox Code Playgroud)
sliders已经有了#它,你不想在其中使用它时再次添加它$(),你最终"##left"作为选择器字符串传入.另请注意,这left是一个值,而不是一个函数,因此不会()在它之后.
所以:
var position = $("#" + sliders[links.indexOf("#" + this.id)]).position().left();
// Remove -------^^^^^^ and -------------------------------------------------^^
Run Code Online (Sandbox Code Playgroud)
对于你正在做的事情,我不会使用一对数组,我会使用:
data-*属性最后两个是微不足道的,但这是第一个如何工作:
$(document).ready(function () {
var sliders = {
"fLink": "#left",
"sLink": "#middle",
"tLink": "#right"
};
$(".link").click(function () {
var sliderSel = sliders[this.id];
if (sliderSel) {
var position = $(sliderSel).position().left;
alert(position);
$(".slider").animate({
left: gap
}, 1500);
}
});
});
Run Code Online (Sandbox Code Playgroud)
旁注:是否gap在您未显示的代码中定义?如果没有,你会想要这样做.