в чем ошибка?
тултипам делаю выравнивание, после цикла код не пашет выдает ошибку на строку
tooltip = oli[i].getElementsByTagName('span')[0]; или последнюю в цикле, главное значения проставляет, и все работает на странице(тултипы на своих местах), а вот весь код после цикла не пашет из за той ошибки в чем косяк?
var header = document.getElementsByTagName('header')[0];
var oli = header.getElementsByTagName('li'),
bw = document.body.offsetWidth;
for (var i in oli) {
var tooltip = oli[i].getElementsByTagName('span')[0];
var ll = oli[i].offsetLeft,
lw = oli[i].offsetWidth,
tw = tooltip.offsetWidth,
tl = tooltip.offsetLeft,
left = (ll + lw / 2) - (tw / 2);
if ((left + tw) > bw) {
left = left - -(bw - (left + tw) - 3);
}
tooltip.setAttribute('style', 'left:' + left + 'px');
}
alert(123);
|
Попробуйте заменить for (var i in oli) { на
for (var i=0; i<oli.length; i++) {
|
спасибо, так то робит, но в чем косяк понять не могу, нельзя в данной ситуации примять такой цикл?
|
czp,
Суть в том, что подобный цикл только для объекта(а не массива), и если для массива его использовать, то при смене объекта его нужно инициализировать иначе; var oli; var i; oli = header.getElementsByTagName('li'), 04 bw = document.body.offsetWidth; 05 06 for (i in oli) { |
| Часовой пояс GMT +3, время: 17:20. |