2015-09-13 11 views
0

Возможно ли создание загрузки страницы ajax без php? Так что просто загружайте содержимое связанной страницы (если стажер) и вставьте ее на текущую страницу.Загрузить страницу через ajax (без php)

Я попытался это, но он не работает (просто ничего не происходит, когда я нажимаю ссылку): http://www.johnmorrisonline.com/jquery-tutorial-ajax-load-content-with-no-page-refresh/

Мой код заключается в следующем:

$(document).ready(function(){ 
    // Set trigger and container variables 
    var trigger = $('a'), 
     container = $('#content'); 

    // Fire on click 
    trigger.on('click', function(){ 
     // Set $this for re-use. Set target from data attribute 
     var $this = $(this), 
     target = $this.data('target');  

     // Load target page into container 
     container.load(target); 

     // Stop normal link behavior 
     return false; 
    }); 
}); 
+0

Какова ценность 'target'? –

+0

Большинство ссылок на моей странице не имеют цели. Поэтому я предполагаю, что это будет 'target =" _ self "' – Zoker

+0

'load' функция принимает реальную ссылку в качестве аргумента, ссылается на реальную страницу. если ваша цель '_self' или даже пустая - ничего не будет загружено. –

ответ

0
метод

Jquery load принимает ссылку страницы в качестве аргумента. Это может быть /blog/post или blog/about.html или что угодно.

Что делает этот код делать:

trigger.on('click', function(){ 
    // Set $this for re-use. Set target from data attribute 
    var $this = $(this), 

    // takes value of data-target attribute 
    target = $this.data('target');   

    // and pass it to load function 
    container.load(target); 

Это означает, что если ваш a элемент не имеет data-target атрибут - то нет никакой связи доступны. И пустая строка передана в container.load(target); Как вы думаете, что будет загружено, если пустая строка передана функции? Ничего.

Таким образом, вы должны добавить данные, целевой атрибут к вашим ссылкам:

<a href="#" data-target="/blog/post.html">Click</a> 

Update:

Оказывается load метод позволяет загружать части страницы, как это:

$("#result").load("ajax/test.html #container"); 

Дополнительные данные по load

+0

И когда я делаю '$ ('a') каждый (function() {$ link = $ (this) .attr ('href'); $ (this) .attr ('data-target', $ link);}); Могу ли я загружать только некоторые части связанной страницы? Например. только контент, размещенный в '# content' – Zoker

+0

Как правило, нет, но вы можете попробовать использовать загруженный контент в качестве другого объекта jquery, найти что-то там, клонировать и т. д. –

+0

Обновить мой ответ. Прочтите. –

Смежные вопросы