Как заставить div загружаться при нажатии, а не при загрузке страницы?[закрыто]

StackOverflow https://stackoverflow.com/questions/1088432

Вопрос

В настоящее время я работаю над созданием своего нового веб-сайта.Он использует одну страницу и использует аккордеонное меню jQuery для загрузки контента.Содержимое разделено на шесть различных элементов div, и все они загружаются при доступе к странице.Я хочу, чтобы он загружал каждый div при нажатии на ссылку на него.Чтобы уменьшить время загрузки страницы.

Вы можете увидеть это в действии на моем сайте в стадии разработки здесь: http://is.gd/1p1Ys

Поскольку я не писал скрипт jQuery и очень плохо разбираюсь в JavaScript/jQuery, я понятия не имею, что делать.Поэтому мне интересно, может ли кто-нибудь здесь помочь мне.

Благодаря тонну,

Райан

Это было полезно?

Решение

Я согласен с другими ответами, что вкладки jquery-ui делают именно это, но вы можете довольно легко взломать свой файл Accordian.js...просто измените hrefs в своей навигации, чтобы они указывали на внешние html-файлы, содержащие нужный вам контент, т.е.href="#lifestream" => href="lifestream.html",

а затем в accordian.js:

$links.click(function () {
  var link = this,
  if(!link.href.match(/^#.*/)) { //if the href doesn't start with '#'
    loadDiv(link.href);
  } else {
    doRestOfFunction(); //everything your script is currently doing.
  }
});

function loadDiv(href) {
  $.get(href, function(html) {
   var newDiv = $(html)
   $(".panels").append(newDiv);
   newDiv.hide();
   doRestOfFunction(); //same as above
  }
}

Другие советы

Судя по вашему описанию, похоже, что эти элементы div не отображаются до тех пор, пока не будет выбран пункт меню верхнего уровня.В этом случае вы можете использовать jquery для вставки элементов подменю в DOM при его открытии.

Вы можете найти достойное руководство по манипулированию Javascript/DOM по адресу w3schools.

Я не уверен, что управление аккордеоном - это то, что вам нужно - проверьте Вкладки JQuery - вы можете загружать контент через Ajax, что предотвратит его загрузку сразу.Объяснение того, как это сделать, есть здесь

Я бы предложил посмотреть вкладки jquery-ui, если вы хотите динамически загружать контент.В настоящее время я не видел плагина аккордеона, который бы с этим справился, что имеет смысл, поскольку аккордеону необходимо знать высоту содержимого, а также, если при нажатии на панель вам приходилось ждать динамического контента, она будет выглядеть дергающейся.Вкладки — ваш лучший и наиболее подходящий способ двигаться вперед.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top