2009-10-27 12 views
10

Próbuję załadować element DIV ze strony zewnętrznej do mojej bieżącej strony przy użyciu funkcji Ajax/jQuery.ajax. Chociaż udało mi się załadować całą stronę zewnętrzną, nie mogę załadować elementu DIV.Użyj funkcji Ajax() w Jquery, aby załadować PART strony zewnętrznej do div

Oto mój kod:

$("a").click(function() { 
    /* grabs URL from HREF attribute then adds an */ 
    /* ID from the DIV I want to grab data from */ 
    var myUrl = $(this).attr("href") + "#external-div"; 
    $.ajax({ 
    url: myUrl, 
    success: function(html) { 
    /* loads external content into current div element */ 
    $("#current-div").append(html); 
    } 
    }); 
    return false; 
}); 

To chwyta atrybutu href bez żadnych problemów, ale nie doda "# zewnętrznego-div" do adresu URL. Jakieś pomysły?

Wielkie dzięki!

~ Jared Crossley

+0

Adres URL, który chcesz przesłać, powoduje pobranie "# zewnętrznego-div", ale jakikolwiek kontakt, z którym nawiązujesz kontakt, nie rozumie, że potrzebujesz tylko jednego elementu div. – wambotron

Odpowiedz

11

Jeśli chciał po prostu wrócić, że dział można użyć metody jQuery load po prostu załadować zawartość powrócił do swojej #current-div ala

$("a").click(function() { 
    /* grabs URL from HREF attribute then adds an */ 
    /* ID from the DIV I want to grab data from */ 
    var myUrl = $(this).attr("href") + " #external-div"; 
    $("#current-div").load(myUrl); 
    return false; 
}); 

Spójrz na jQuery Ajax/load documentation

+0

Witaj Quintin, Dziękujemy za szybką odpowiedź. Wolałbym nie używać metody ładowania, ponieważ ogranicza to rodzaj efektu łączenia i zarządzania danymi, które mogę zrobić, ale teraz jest to jedyna opcja, o której jestem świadomy. Jeszcze raz dziękuję za Twoją odpowiedź. Czy ktoś jeszcze wie, czy funkcja Ajax/jQuery.ajax pozwoli mi załadować zewnętrzny div? – user196986

+0

To nie do końca prawda, nadal można zapewnić wywołanie zwrotne dla metody ładowania i zastosować tam łańcuch, opisywany scenariusz (za pośrednictwem kodu) wydaje się być czymś, co może zająć dodatkowe obciążenie. Czy jest coś szczególnego poza tym, co napisałeś, że próbujesz osiągnąć? –

+0

Dobra uwaga. Myślę, że moje pytanie nie było kompletne. Metoda ładowania działa dobrze, ale istnieją dwa inne scenariusze, w których mogę się znaleźć. Scenariusz 1) Może być konieczne załadowanie danych XML (zamiast HTML) i/lub wykonanie POST do formularza. Scenariusz 2) W powyższym przykładzie chciałbym wyciszyć bieżącą zawartość, załadować nową zawartość, a następnie zniknąć w nowej treści. Jednak zaraz po wywołaniu metody load(), natychmiast ładuje nową zawartość, zamiast czekać, aż poprzednia zawartość całkowicie zniknie. Przepraszam, że nie jestem bardziej jasny. – user196986