2012-06-21 17 views
5

Basicily i wykazały index.html poniżej ..Jquery część obciążenia HTML Zewnętrznych

<html> 

<head> 

<title>UI Test: Main Menu</title> 

<script type="text/javascript" src="jquery-1.7.2.min.js"></script> 
<script type="text/javascript" src="general.js"></script> 

</head> 

<body> 

<input type="button" value="Details" onclick="javascript:$('#mainContainer').load('loadpage.html #name1div *');"/><br> 
<div id="mainContainer">   

</div> 

W cotaints loadpage.html

<div id="nav1div><h3>1 DIV </h3> </div> 
<div id="nav2div><h3>2 DIV </h3> </div> 
<div id="nav3div><h3>3 DIV </h3> </div> 
<div id="nav4div><h3>4 DIV </h3> </div> 

A moim celem jest podstawowym załadowaniem 1 elementu div na raz do głównego kontenera, wiem, że funkcja ładowania może załadować pełną stronę w ce, ale to nie jest to, co muszę zrobić.

miał kilka spojrzeć na podobne pytania, ale cant wydają się rozwiązać ten problem ..

Każda pomoc jest mile widziana dzięki chłopaki!

+0

Jakiego błędu dostałeś? – xdazz

Odpowiedz

10

jQuery .load() Funkcja pozwala określić część strony, aby załadować, a nie tylko w całym dokumencie.

np.

$('#mainContainer').load('loadpage.html #nav1div'); 

Sprawdź to here i przewiń w dół do sekcji zatytułowanej „Fragmenty Ładowanie strony”.

+0

@ user983969 Nie rozumiem, OP nie chciał div jeden po drugim za każdym kliknięciem? – Cranio

+0

Ten kod rozwiązuje tak, jak byłoby to javascript, który włożyłem do każdego pliku putton, aby załadować każdy div – LmC

+0

@ user983969 Ok, więc chcesz je załadować * wybiórczo *, to było dla mnie jasne, myślałem, że chcesz je * progresywnie *, jeden po drugim, za każdym kliknięciem * tego samego * przycisku – Cranio

2

jQuery load można łatwo załadować fragmenty stron, tak jak

$('#mainContainer').load('loadpage.html #nav1div'); 
3

Aby załadować div jeden po drugim, określić licznik

var curDiv = 1; // current Div 

gdzieś na początku (lepiej zdefiniować $(document).ready() funkcję, aby go zainicjować). Zdefiniuj tę funkcję:

function loadThing() 
{ 
    if (curDiv<5) $('#mainContainer').load('loadpage.html #nav' + (curDiv++) + 'div'); 
} 

Zdefiniuj zdarzenie click jak:

$("input#getdiv").click(loadThing); 

i przycisk jak:

<input id="getdiv" type="button" value="Details" /> 

z każdym kliknij powinieneś dostać pierwszy div, po drugie, i tak na.

Dzięki takiemu podejściu, oddziela JS od HTML, co zawsze jest dobre.

+0

UWAGA: Cieszę się z przeprowadzanych akcji, ale po dalszych badaniach okazało się, że OP chce więcej przycisków, po jednym dla każdego DIV (absolutnie nie było jasne, w jaki sposób zostało zadane pytanie), co czyni to zbędnym (ładowanie strony) fragment na zdarzeniu kliknięcia każdego przycisku jest wystarczający). Więc przyjmij moją odpowiedź jako ogólne podejście. – Cranio