Ajax вставил контент, недоступный в DOM - PullRequest
2 голосов
/ 07 марта 2011

Я работаю на чистом jquery / js сайте, в основном, чтобы попрактиковаться в jquery. Я использую оператор загрузки для загрузки меню из файла с обычным HTML, например, так:

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

который загружает:

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

Проблема в том, где я сейчас его использую, мне нужно изменить ссылку вышеупомянутых ссылок, но они не являются частью домена. В предыдущих случаях я мог использовать .live (нажмите ... Но не здесь. Есть ли способ, которым я могу сделать это?

В частности, мне нужно загрузить ссылки и изменить href с #anklets на? Category = anklets

Ответы [ 2 ]

6 голосов
/ 07 марта 2011

А как насчет следующего?

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

В моем примере после завершения загрузки вызывается анонимная функция. Он берет каждый якорь с HREF хешем и заменяет его HREF на основе вашего описания.

0 голосов
/ 07 марта 2011

Спасибо, Димитрий, ваше решение в принципе сработало. Я наконец использовал:

$('#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 );
  });
});

Так почему же jQuery распознал там список категорий? Я попытался переместить каждую функцию за пределы функции загрузки, и CategoryListing не содержал никаких ссылок. Это потому, что, возможно, загрузка не была завершена, когда он пытался получить ссылки на категории? Похоже, это возможно.

Спасибо, Тодд

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...