for (var i = 1; i <= 3; i++)
{
var tmpDiv = '#difdiv' + i;
var tmpButton = '#difButton' + i;
$(tmpDiv).css({
position: "absolute",
left: 0,
top: $('#map').position().top - 16
});
$(tmpDiv).css('z-index', 3000);
$(tmpDiv).css('width', '100%');
$(tmpButton).hover(
function () {
$(tmpDiv).fadeIn(200);
}, function () {
$(tmpDiv).fadeOut(200);
}
);
}
我使用此循环将hover dif添加到可变数量的按钮。 当我使用这段代码时,每个jQuery-Element都会得到“'#difdiv'+ i”。最后,每个按钮都会逐渐消失。在这种情况下,difdiv3。 如何访问值给jQuery元素而不是变量?
答案 0 :(得分:2)
问题是变量引用。简单的方法是获取循环内部的内容并将其填充到函数中并调用它。
function createButton(i) {
var tmpDiv = '#difdiv' + i;
var tmpButton = '#difButton' + i;
$(tmpDiv).css({
position: "absolute",
left: 0,
top: $('#map').position().top - 16
});
$(tmpDiv).css('z-index', 3000);
$(tmpDiv).css('width', '100%');
$(tmpButton).hover(
function () {
$(tmpDiv).stop().fadeIn(200); //added stop
}, function () {
$(tmpDiv).stop().fadeOut(200); //added stop
}
);
}
for (var i = 1; i <= 3; i++) {
createButton(i);
}