2 Stimmen

Ajax eingefügter Inhalt nicht im DOM zugänglich

Ich arbeite an einer reinen jquery/js-Website, vor allem einige jquery zu üben. Ich verwende eine Ladeanweisung, um ein Menü aus einer Datei mit allgemeinem Html zu laden, etwa so:

$('#categoryListing').load('../common.html #categoryLinksUL');

der lädt:

<ul id="categoryLinksUL">
          <li><a href="#anklets" rel="ajax">Anklets</a></li>
          <li><a href="#bracelets" rel="ajax">Bracelets</a></li>
</ul>

Das Problem ist, wo ich es jetzt benutze, muss ich die href der oben genannten Links ändern, aber sie sind nicht Teil des Dom. In früheren Fällen war ich in der Lage zu verwenden .live(click... Aber hier nicht. Gibt es eine Möglichkeit, wie ich dies erreichen kann?

Insbesondere muss ich die Links zu laden und ändern Sie die href von #anklets zu ?category=anklets

6voto

Dimitry Punkte 6433

Wie sieht es mit den folgenden Punkten aus?

$('#categoryListing').load('../common.html #categoryLinksUL', function() {
    $('li a\[href^="#"'\]').each(function () {
        this.href = '?category=' + this.href.substr(1);
    });
});

In meinem Beispiel wird die anonyme Funktion aufgerufen, nachdem das Laden abgeschlossen ist. Sie nimmt jeden Anker mit einer HREF-Raute und ersetzt ihn durch eine HREF, die auf Ihrer Beschreibung basiert.

0voto

maddogandnoriko Punkte 973

Danke Dimitry, deine Lösung hat im Grunde funktioniert. Ich habe schließlich verwendet:

$('#categoryListing').load('../common.html #categoryLinksUL', function() {
  $('#categoryListing li a').each(function () {
    var hashPos=this.href.indexOf("#");
    var tCategory = this.href.substr(hashPos+1,this.href.length );
  });
});

Warum also hat jQuery categoryListing dort erkannt? Ich habe versucht, die Funktion each außerhalb der Ladefunktion zu verschieben, und categoryListing enthielt keine Links. Ist es, weil vielleicht die Last nicht abgeschlossen wurde, wenn es versucht, categoryListing Links zu erhalten? Das scheint möglich zu sein.

Danke! Todd

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X