Независимое затухание обьектов, используя вместе с createRequestObject()
Вложений: 1
Здравствуйте! Вчера ночью стянул себе скрипт загрузки контента без перезагрузки страницы, мне он нужен для того что бы мой логотип, который под скрипт fade-In, fade-out -не перезагружался при переходах. Также похожий скрипт (fade-In,fade-out) юзался для вывода текстового контента.
Итого у меня jquery, 3 скрипта и noconflict() Значт все пашет более менее, но вот с выводом текста борода, - по нажатию на ссылку появляеться, и плавно исчезает полностью, плюс заметил что логотип тоже перезагружаеться что не есть хорошо. :help: мой файл scripts,js $.noConflict(); jQuery(document).ready(function($) {jQuery(function() { //<затухание текстового контента>// $(document).ready(function() { $("#contentBody").css("display", "none"); $("#contentBody").fadeIn(1000); $("a.transition").click(function(event){ event.preventDefault(); linkLocation = this.href; $("#contentBody").fadeOut(1500, redirectPage); }); function redirectPage() { window.location = linkLocation; } }); //<затухание текстового контента>// //<неоновый логотип>// $(document).ready(function(){ setInterval(function(){ var versions = $('.textVersion:visible'); if(versions.length<2){ $('.textVersion').fadeIn(2000); } else{ versions.eq(0).fadeOut(2000); } },1000); }); //</неоновый логотип>// }); }); //<Загрузка контента без перезагрузки страницы>// function showContent(link) { var cont = document.getElementById('contentBody'); var loading = document.getElementById('loading'); cont.innerHTML = loading.innerHTML; var http = createRequestObject(); if( http ) { http.open('get', link); http.onreadystatechange = function () { if(http.readyState == 4) { cont.innerHTML = http.responseText; } } http.send(null); } else { document.location = link; } } // создание ajax объекта function createRequestObject() { try { return new XMLHttpRequest() } catch(e) { try { return new ActiveXObject('Msxml2.XMLHTTP') } catch(e) { try { return new ActiveXObject('Microsoft.XMLHTTP') } catch(e) { return null; } } } } //</Загрузка контента без перезагрузки страницы>// Пожалуйста помогите розобраться, трудно нагуглить правильный запрос, т.к в js нуб. Буду признателен за любую помощь, очень хочеться что бы зароботало)) локальный пример: |
в принципе без затухания текстового контента, все роботает правильно. Конечно можно и так пользовоться, тем не меннее такое впечатление что нехватает буквально одной строчки кода. Посмотрите пожалуйста, если зделать, может кому то потом и пригодиться.
|
Цитата:
|
Цитата:
$(document).ready(function(){ $('#contentBody').click(function(){ // вешаем на клик по элементу с id = example-1 $(this).load('primer1.html'); // загрузку HTML кода из файла primer1.html }) }); Просто теряюсь каким образом это связать с : //<затухание текстового контента>// $(document).ready(function() { $("#contentBody").css("display", "none"); $("#contentBody").fadeIn(1000); $("a.transition").click(function(event){ event.preventDefault(); linkLocation = this.href; $("#contentBody").fadeOut(1500, redirectPage); }); function redirectPage() { window.location = linkLocation; } }); //<затухание текстового контента>// полагаю что это все должно роботать вместе, или все же нужно модернизировать реализацию ajax?:help: |
Ну что тут скажешь, править мне лень что то. А вот пояснить что к чему могу.
$(document).ready(function() { // Обработчик события "загрузка документа". $("#contentBody").css("display", "none"); // Установка css свойства "display" в значение "none". Т.е. скрытие элемента с айди "contentBody". инетесно почему не устроил такой вариант: .hide(); (вместо .css("display", "none")) $("#contentBody").fadeIn(1000); // Плавное отображение только что скрытого элемента // Обработчик кликов по ссылке с классом "transition" $("a.transition").click(function(event){ event.preventDefault(); // Тут глушится немедленный переход по ссылке с тем, чтобы запустить его чуть позже linkLocation = this.href; // Определяем значение атрибута "href" у ссылки по которой кликнули $("#contentBody").fadeOut(1500, redirectPage); // Плавно скрываем элемент с айди "contentBody" и осуществляем редирект. }); // Зачем эту функцию сюда засунули? Только отступы лишние и всё. И зачем она вообще? Где логика? Где разум? Каллбячную функцию можно было и не выносить так далеко, особенно когда она состоит всего из одной строки. function redirectPage() { // Редирект собственно (вот по этому ваша страница и перезагружается). Кст, переход осуществляется по адресу указанном в атрибуте "href" на кликнутой ссылке window.location = linkLocation; } }); Код написан очень плохо. Зачем создавать свои функции для AJAX когда они есть в jQuery. Или они из jQuery только селекторы с анимацией взяли? На это получается ума хватило а на то чтобы код грамотно оформить - нет. Лучше всё переписать чем править тут что то. Не так уж это и сложно. Поставьте конкретную задачу, начните разбираться в ней и по ходу дела задавайте вопросы. Будем рады помочь. |
Tim спасибо за пояснения.
Цитата:
перебрался на соседнюю ветку: http://javascript.ru/forum/ajax/1286...uery-ajax.html |
Часовой пояс GMT +3, время: 23:08. |