2015-02-07 2 views
0

вот эта система: http://jsfiddle.net/ss1ef7sq/ , хотя это не работает в js скрипке, но сам код работает, поскольку я тестировал его локально через firefox.Сокращение для .load() ajax links with loader

это где я уже на основе этого на: http://html.net/tutorials/javascript/lesson21.php

JQuery/Ajax:

$('#ep-101').click(function(){$('.main-container').load('link.html #ep101').hide().fadeIn(800);}); 
$('#ep-102').click(function(){$('.main-container').load('link.html #ep102').hide().fadeIn(800);}); 
$('#ep-103').click(function(){$('.main-container').load('link.html #ep103').hide().fadeIn(800);}); 
$('#ep-104').click(function(){$('.main-container').load('link.html #ep104').hide().fadeIn(800);}); 
$('#ep-105').click(function(){$('.main-container').load('link.html #ep105').hide().fadeIn(800);}); 

так что мой вопрос, есть ли способ сделать это, как короткий код, где он может просто получить значение этих # 10ns или предположить, что будет другая страница с собственным гнездом уникальных идентификаторов, не набирая их отдельно? есть еще много, я не понимаю с ajax, поэтому я был бы признателен, если кто-нибудь может помочь & объяснить, по крайней мере, суть этого.

Я посмотрел в Интернете, но я действительно застрял. я также, по крайней мере, узнал, что можно добавлять переходы, но так, как он закодирован, есть только переход для входящей страницы & не той, которая будет заменена. У меня также есть проблема с эффектами загрузчика страниц, но я сохраню его, когда я застрял там.

благодарит заранее. =)

ответ

0

Использовать классы вместо id. Установите атрибут href, который вы хотите загрузить по клику и получить к нему через $(this).attr('href').

<a class="load-me" href="link1.html">link 1</a> 
<a class="load-me" href="link2.html">link 2</a> 
... 

Сценарий:

$('.load-me').click(function(e){ 
    e.preventDefault(); 
    $('.main-container').hide().load($(this).attr('href'), function() { 
     // ... 
     $(this).fadeIn(800); 
    }) 
}); 

JSFiddle


Если вам нужно load ждать контейнер потайной анимации, вы можете сделать это по-другому.

$('.load-me').click(function(e){ 
    e.preventDefault(); 
    // get the url from clicked anchor tag 
    var url = $(this).attr('href'); 
    // fade out the container and wait for animation complete 
    $('.main-container').fadeOut(200, /* animation complete callback: */ function(){ 
     // container is hidden, load content: 
     $(this).load(url, /* load complete callback: */ function() { 
      // content is loaded, show container up 
      $(this).slideDown(200); 
     }); 
    }); 
}); 

JSFiddle

+0

мм ... код у меня началась ... и это реальное пространство заставки. Благодарю. хотя как я могу сделать так, чтобы только один div с id из ссылки был единственным, кто загружал бы на div, на который он направлен? Я попытался использовать link.html # id1 # id2 и так далее, но он загружает всю страницу ... давайте посмотрим ... это похоже на то, что вы сделали + эти закладки на одной странице html. было бы лучше, если бы они разделили их на свои собственные семантики? - edit oh wait, я только что увидел ваше обновление, теперь позвольте мне проверить его. =) – rlxa

+0

@rlxa, если я правильно понимаю - вы хотите загрузить HTML-страницу с некоторыми элементами внутри. Из загруженного HTML вам нужно извлечь только определенный элемент и показать его внутри контейнера, а не показывать весь загруженный контент? –

+0

да, это правильно и на самом деле это трюк ... что я сделал в ссылке href, это просто что-то вроде «link.html # id1», # id2 и так далее. Я просто добавил пространство между адресом и его закладкой. на самом деле это хорошо сейчас. Я понимаю это лучше. Спасибо чувак. просто один последний вопрос на самом деле. лучше ли это семантически или мне нужно разделить их на разные страницы? – rlxa