2012-02-05 4 views
1

Я создаю некоторый скрипт, который имеет модальное окно на fancybox и на загрузке заполняется некоторым контентом из других файлов. И у меня есть некоторые вопросы:Использовать ajax как load

Я хочу загрузить контент через ajax в мой контейнер (# dialog-analogy). Но не полная страница - только один div с id (# get-cats). Я не знаю, как получить содержимое идентификатора с страницы ajax. Тхи является вариант сценария:

function FillCats(catid) { 
    $.ajax({ 
     url: "catalogue.php?cat="+catid+"&size=1", 
      cache: false, 
      success: function(html){ 
        var getcat = $('#get-cats').html(html); // wrong 
      $("#dialog-analogy").html(getcat); 
      } 
    }); 
} 
+3

не используйте жить, это плохо, MKEY? Используйте делегат! –

+4

спрашивайте ** один ** вопрос одновременно. Возьмите второй вопрос из этого и опубликуйте его отдельно. –

ответ

3

Вы будете рады узнать, что load функция JQuery имеет точно функциональность вы хотите. Вы просто добавляете селектор в конец URL-адреса.

function FillCats(catid) { 
    $("#dialog-analogy").load("catalogue.php?cat="+catid+"&size=1 #get-cats"); 
} 

См Loading Page Fragments section документации load.

Live example using load


Если по каким-то причинам вы не можете использовать load, вы можете эмулировать его легко путем создания структуры, что вы получили с помощью $(), а затем извлекая элемент (ы) вы хочу:

function FillCats(catid) { 
    $.ajax({ 
     url: "catalogue.php?cat="+catid+"&size=1", 
     cache: false, 
     success: function(data) { 
      $("#dialog-analogy").html($(data).find("#get-cats")); 
     } 
    }); 
} 

Live example emulating load using ajax

+0

Да, я знаю о загрузке. Но загрузка кэшировала результат ... – skywind

+0

@Vladimir: Ваш код JavaScript не должен контролировать кешируемость. Это работа для сервера. Если содержимое должно быть не кэшируемым, установите правильные заголовки кеша на сервере содержимого. Но я добавил пример, используя 'ajax'. –