Так. Потыкал/почитал/покапался, обновил jQuery, перекинул подключение jquery.tools из хэдэра в футер, помогло. Теперь работает из внешнего файла. Но теперь он стал ругаться на другие скрипты. Мол они теперь not a function. Получается что какая-то не совместимость у jQuery и jquery.tools?
Разобрался. Он ругался на скрипты которые и не использовались. Они просто были изначально в шаблоне и я не стал их отключать чтоб не сломалось ничего. Теперь отключил их. Все работает. Консоль не ругается. Последняя проблема осталась со второй фоткой на странице товара. Он попрежнему увеличивает первую. Хотя ее rel меняется на "#mies2" он все равно продолжает видеть там "#mies1".
Которую из них? Если все меняю или последнюю то перестает переключать #mies, если эту var largeAlt = $(this).attr("title"); то ничего не меняется. --- Добавлено --- Поспешили с гарантиями.
Залил. --- Добавлено --- Вот еще что замечено. Если в этой строчке изначально прописан rel, то увеличение работает, а если нет то нет. Хоть rel и появляется там при клике на миниатюру. HTML: <img id="largeImg" src="<?php echo Product::getImage($product['id']); ?>" rel="#mies1"/> --- Добавлено --- По всему выходит что скрипт видит только тот rel который изначально написан. Но отказывается видеть тот который прописывает туда другой скрипт.
.attr .prop --- Добавлено --- у тебя всё работает как надо. увеличение показывает другой элемент, не тот, где ты меняешь картинку. Эссно там будет одна и та же картика. Ты ж там ничего не меняешь.
Но там два блока для увеличенного фото и он должен показывать один из них выбирая.их по mies. Разве нет?
а где это в коде у тебя есть? --- Добавлено --- а, я понял, он типа должен переключать рел, а большое изображение неким магическим образом должно от рел рисоваться. --- Добавлено --- и оно даже так и работает! прекрасно. Вывод напрашивается такой: Зумилка не читает проп. Она читает аттр. А аттр не меняется никогда. --- Добавлено --- Код (Javascript): $(document).ready(function(){ // $("h4").append('<em></em>') $(".thumbs a").click(function(){ var largePath = $(this).prop("href"); var largeAlt = $(this).prop("title"); $("#largeImg").prop({ src: largePath, rel: largeAlt }); console.log($("#largeImg").prop('rel')); // $("h4 em").html(" (" + largeAlt + ")"); return false; }); }); тут всё работает, как задумано. --- Добавлено --- другую зумилку попробуй.
Ну да, у меня к этому коду претензий и не было. Он переключает главное фото при клике на миниатюру. И вот в таком виде Код (Javascript): $(document).ready(function(){ // $("h4").append('<em></em>') $(".thumbs a").click(function(){ var largePath = $(this).attr("href"); var largeAlt = $(this).attr("title"); $("#largeImg").attr({ src: largePath, rel: largeAlt }); // $("h4 em").html(" (" + largeAlt + ")"); return false; }); }); даже переключает rel. А вот зумилка отказывается видеть что он его (rel) переключает...
А это идея, надо попробовать. Если не получится, то буду искать другую зумилку. Спасибо за помощь. Первый мой опыт поиска помощи из вне, вполне удачный!
Да я вроде прочел и с брейкпойнтами все даже понятнее чем с console.log Пока не совсем понимаю как их применить, но знаю что рано или поздно это пригодится...
@KirtuZ удобно что программа остановится именно на брейкпоинте, его ставят в подозрительное место, чтобы в этот момент посмотреть состояние программы и значения переменных.
Я, кстати победил. Переписал скрипт вот так Код (Javascript): $(document).ready(function(){ $(".thumbs a").click(function(){ var largePath = $(this).attr("href"); $("#largeImg").attr({ src: largePath}); $("div#mies1.simple_overlay img").attr({ src: largePath}); return false; }); }); Теперь все работает именно так как я хотел. Всем спасибо за помощь. Отдельная, невероятных размеров благодарность igordata за:
Было. Только что. Но ты не знаком с инструментом и у тебя не возникает идеи его использовать. Познакомиться с инструментом. Освой его.