Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Несколько страниц на одной (https://javascript.ru/forum/dom-window/60238-neskolko-stranic-na-odnojj.html)

GVY 18.12.2015 13:32

Несколько страниц на одной
 
Здравствуйте, в общем задача такая сделать что то вроде экселя в web).

Есть 3 страницы, которые обрабатывают данные из БД. я их подцепляю в определенный div

<div id = "navmenu">
	
    <ul>
    	<li><a href="javascript://" onclick="$('#divbody').load('/2.php');return false;">1</a></li>
        <li><a href="javascript://" onclick="$('#divbody').load('/3.php');return false;">2</a></li>
        <li><a href="javascript://" onclick="$('#divbody').load('/4.php');return false;">3</a></li>
    </ul>


</div><!--END div = "NavMenu"-->
<br>
<br>
<br>
<div id = "divbody">
</div>


и все работает, но вот в чем беда при переходе между ссылками данные на страницах исчезают, а как сделать чтобы не исчезали? Так как не знаю всех тонкостей программирования в web, вынашиваю идею сделать какое то общее хранилище, но может есть какие то способы другие.

ruslan_mart 18.12.2015 14:15

<div id = "navmenu">
	
    <ul>
    	<li><a href="2.php">1</a></li>
        <li><a href="3.php">2</a></li>
        <li><a href="4.php">3</a></li>
    </ul>


</div><!--END div = "NavMenu"-->
<br>
<br>
<br>
<div id = "divbody">
</div>



$(function() {
    var content = $('#divbody'),
        storage = {};

    $('#navmenu').on('click', 'a', function(e) {
        var href = this.href;
        if(href in storage) {
            content.html(storage[href]);
        }
        else {
            $.post(href, function(response) {
                content.html(response);
                storage[href] = response;
            });
        }
        e.preventDefault();
    });
});

GVY 30.12.2015 10:48

Цитата:

Сообщение от Ruslan_xDD (Сообщение 400416)
<div id = "navmenu">
	
    <ul>
    	<li><a href="2.php">1</a></li>
        <li><a href="3.php">2</a></li>
        <li><a href="4.php">3</a></li>
    </ul>


</div><!--END div = "NavMenu"-->
<br>
<br>
<br>
<div id = "divbody">
</div>



$(function() {
    var content = $('#divbody'),
        storage = {};

    $('#navmenu').on('click', 'a', function(e) {
        var href = this.href;
        if(href in storage) {
            content.html(storage[href]);
        }
        else {
            $.post(href, function(response) {
                content.html(response);
                storage[href] = response;
            });
        }
        e.preventDefault();
    });
});

Правильно ли я понимаю? вот этот код
$('#navmenu').on('click', 'a', function(e) {
означает, что при нажатии на ссылку 1 или 2 или 3 он должен пойти в эту функцию... такое ощущение, что не заходит он в нее, по крайней мере, алертом проверяю и ноль реакции, при нажатии на ссылку он сразу открывает ее в новом окне и все...я даже пробывал
content.html(response);
заменить на
content.load(response);

GVY 30.12.2015 10:53

Ruslan_xDD,

Спасибо вам кстати за помощь, я тут пропадал на время.


Часовой пояс GMT +3, время: 23:53.