Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Помогите победить баг (https://javascript.ru/forum/jquery/32570-pomogite-pobedit-bag.html)

oscario 21.10.2012 18:48

Помогите победить баг
 
Я использую jQuery на сайте, чтобы переключать планы с планировками квартир на странице: http://vozdvizhenka.info/vozdvizhenskaya/36/

Всё работает замечательно, кроме одного странного бага, если переключаться на див ниже третьего (на данной странице это план подвала), то между дивами откуда-то добавляются символы кавычек "" и соответственно сдвигают див вниз на одну строку. Кто-нибудь может объяснить, почему это происходит? Спасибо

Blanco 21.10.2012 20:06

Цитата:

Сообщение от oscario (Сообщение 211482)
Я использую jQuery на сайте, чтобы переключать планы с планировками квартир на странице: http://vozdvizhenka.info/vozdvizhenskaya/36/

Всё работает замечательно, кроме одного странного бага, если переключаться на див ниже третьего (на данной странице это план подвала), то между дивами откуда-то добавляются символы кавычек "" и соответственно сдвигают див вниз на одну строку. Кто-нибудь может объяснить, почему это происходит? Спасибо

Замени правую скобочку > закрывающего дива id="firstFloor" и id="basement"

Это не правильные скобочки, ты их похоже откудо-то из неправильного места взял, или нагенерил :no: Может откуда скопировал из другой кодировки, или у тебя страничка скриптом генерируется с ошибкой?

А я кажется понял, похоже после этих скобочек затисался лишний бит. Я сейчас немогу вспомнить всех обстоятельств, но у меня такое один раз было, давненько. У меня тогда страничка кажется на пхп генерилась.


Ну да, смотри: так заканчивается нормальная скобочка
3E - это скобочка, 0A - это перенос строки, 09 - это табуляция, а вот так заканчиваются те две странные скобочки

И мне очень интересно, как у тебя так получилось?
А джаваскрипт, и тем более джиквери, тут не при чём.

oscario 21.10.2012 21:30

Действительно помогло, спасибо огромное, Друг.
Я думаю это происки PuntoSwitcher, страница действительно генерится PHP, но с чего бы вдруг он сюда это присадил. А вот Свитчер запросто. Скажи, а каким образом ты это вычислил? И еще вопрос: посмотри пожалуйста, есть еще глюк с меню, почему-то в некоторых разделах, при загрузке страницы, показывается скрытый список с субменю. Пока не кликнешь куда-нибудь висеть может, в некоторых браузерах появляется при загрузке и исчезает. Например в этом разделе: http://vozdvizhenka.info/detached_houses/ (особенно сильно это раздражает на айПаде, страница сразу с субменю грузится) и вот еще на этой странице, вообще экзотически, он мало того, что еще при загрузке страницы появляется, так он еще и при каждом клике по карте показывается http://vozdvizhenka.info/map/

Странно то, что на других страницах этого не происходит, хотя меню везде одним и тем-же PHP-инклюдом подгружается.

$(document).ready(function(){
	
	$('.submenu').hide();
	
    $('.about').hover(
        function() {
            $(this).addClass("active");
            $(this).find('ul').stop(true, true);
            $(this).find('ul').slideDown();
        },
        function() {
            $(this).removeClass("active");        
            $(this).find('ul').slideUp('slow');
        }
    );
});


Цитата:

Сообщение от Blanco (Сообщение 211491)
И мне очень интересно, как у тебя так получилось?
А джаваскрипт, и тем более джиквери, тут не при чём.


Blanco 22.10.2012 11:59

Вычислил простой дедукцией, по одному выключал различные факторы. Сначала яваскрипт отключил, баг повторялся, после удалил часть кода которая глючит, потом только маленький кусочек кода, постепенно сужая облость =)

А с меню баг вообще непонятный. Можно избавится отодвинув первую ссылку в меню от левого или верхнего края на один пиксел.
Например бордером
nav {
	height: 69px; /* не знаю зачем там высота 300px */
	border-left: 1px solid #444149;
}
Или паддингом отодвинуть, и картинкой закрыть пустой пиксель
nav {
	height: 69px;
	padding-left: 1px;
	background: url("/navigation/vzdv-globalnav-bg.png") no-repeat scroll left -350px transparent;
}


А странное в баге вот что:
Если в стиле object-grid.css поменять
.object-photoThumb {
	display: block;
}
На
.object-photoThumb {
	display: inline-block;
}

В общем если из инлайн елемента убрать блочный элемент, тогда на странице http://vozdvizhenka.info/detached_houses/ всё будет нормально, и не надо никуда меню двигать.
Но на карте всё равно баг останется. Наверное потому что на карте тоже блочный элемент в строчном содержится.
Но повторить у себя на хосте этот баг у меня не получилось, здесь есть ещё какие-то неизвестные переменные, как вариант - опять неизвестные символы в коде, забравшиеся из пунтосвитчера...

.

oscario 22.10.2012 17:58

Спасибо за наводку. Убрал <a> вообще, он там и не нужен был; C картой пока разбираюсь, но пока всё указывает на то что внутри самой карты что-то не так. Надо тщательнее семантику продумывать.

И какая связь между тем что элементы вложены неправильно и тем, что показывается меню?

Скажи, а в каком софте ты символы отловил?

Цитата:

Сообщение от Blanco (Сообщение 211602)
В общем если из инлайн елемента убрать блочный элемент, тогда на странице http://vozdvizhenka.info/detached_houses/ всё будет нормально, и не надо никуда меню двигать.


Blanco 22.10.2012 20:00

Цитата:

Сообщение от oscario (Сообщение 211664)
Скажи, а в каком софте ты символы отловил?

Простейшая програмка на убунту "Шестнадцатиричный редактор Bless", ставится из репозитория.

А вот связь так и не понял, у себя повторить не получилось. Думаю можно понять если сильно захотеть, но времени нет, к сожалению.

oscario 22.10.2012 20:05

Спасибо большое за помощь! Буду разбираться

Цитата:

Сообщение от Blanco (Сообщение 211682)
Простейшая програмка на убунту "Шестнадцатиричный редактор Bless", ставится из репозитория.

А вот связь так и не понял, у себя повторить не получилось. Думаю можно понять если сильно захотеть, но времени нет, к сожалению.



Часовой пояс GMT +3, время: 16:03.