Jquery - поменять местами таблицы
Привет всем! Подскажите, как при помощи jQuery поменять местами две таблицы при перезагрузке странице, но чтобы это не было заметно для глаза. Вот код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="jquery-1.2.6.js" ></script> </head> <body class="body"> <table id="table_up" class="table"> <caption>Basic Table UP</caption> <thead> <tr class="success"> <th>Name</th> <th>City</th> </tr> </thead> <tbody> <tr> <td>Tanmay</td> <td>Bangalore</td> </tr> <tr> <td>Sachin</td> <td>Mumbai</td> </tr> </tbody> </table> <table id="table_down" class="table"> <caption>Basic Table Down</caption> <thead> <tr> <th>Name</th> <th>City</th> </tr> </thead> <tbody> <tr> <td>Tanmay</td> <td>Bangalore</td> </tr> <tr> <td>Sachin</td> <td>Mumbai</td> </tr> </tbody> </table> </body> </html> Всем спасибо. |
Подскажите, как при помощи jQuery поменять местами две таблицы при перезагрузке странице
А север этого не в состоянии сделать? |
Нужно при помощи jQuery, причем никаких click(function() быть не должно, просто нажал F5, таблица которая была снизу стала сверху и так циклично.
|
Повести флажок в Куки и перезаписывайте его при загрузке страницы. И на основе этого флажка чередуйте свои таблицы.
|
Ну что же, давайте разбираться.
1) да не проблема поменять таблицы местами на клиенте, но 2) таблицы вам отдает сервер, а это означает следующее: а) первый запрос страницы, сперва выводится таблица А, за ней таблица Б б) клиент меняет их порядок с Б на А в) F5 г) сервер опять выводит А первой, Б второй д) клиент меняет порядок на Б первая, А вторая Вопрос - а нафига нужны эти пятнашки, если сервер может сразу выводить первой таблицу Б, а второй А? Ведь по тому что вы пишите - сервер по-боку, а значит о чехарде на клиенте не ведает, получается бесполезное занятие. |
Да это все понятно. Мне просто такое задание дали в универе. Вот сижу и думаю как решить. Полагаю практического значения навряд ли есть у этой задачи. Вот сам текст: У Вас есть веб страница, на которой расположены две таблицы одна под другой. Ваша задача – поменять эти таблицы местами с помощью jQuery (и при необходимости CSS) после загрузки всей страницы, но так, чтобы пользователь не видел мельканий при загрузке страницы. То есть вариант, когда сначала пользователь видит таблицу Б под таблицей А, а после загрузки они на его глазах меняются местами, не подходит.
|
Решить это задание без сервер нельзя, если конечно ваше задание не абстрактное, и подразумевает, что-то нечто, бог знает что, порождает у вас эту страницу, и тогда на клиенте используете куки. Но если веб страница, значит подразумевается сервер удаленный, а это означает, что куки должен устанавливать он, а если не важно время, и подразумевается работа на период сессии, то и кук не надо, хватит и флага в сессии.
Именно на jQuery или на JS поменять местами, так это это у ваших кураторов просто не хватает или мозгов, или фантазии на содержание задач, потому как это как раз удобнее сделать серверу. |
Спасибо. Буду думать.
|
Цитата:
|
На jQuery просто:
$('#table_down').after('#table_up') но... читайте выше, и если это в контексте веб, то что за тараканы в головах ваших кураторов я не знаю. |
table reverse localStorage
Sergei-b84,
:-? <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> table { display: none; } #table_up{ background: #339900 } #table_down{ background: #FF6666 } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function(){ var table = $('#table_up, #table_down'), f = localStorage.getItem('f')||''; function show() { $(table[+!f]).insertAfter(table[+f]) table.show(); }; $('button').click(function(e) { f = f ? '' : '1'; show(); localStorage.setItem('f', f); }); show() ; }); </script> </head> <body> <table id="table_up" class="table"> <caption>Basic Table UP</caption> <thead> <tr class="success"> <th>Name</th> <th>City</th> </tr> </thead> <tbody> <tr> <td>Tanmay</td> <td>Bangalore</td> </tr> <tr> <td>Sachin</td> <td>Mumbai</td> </tr> </tbody> </table> <table id="table_down" class="table"> <caption>Basic Table Down</caption> <thead> <tr> <th>Name</th> <th>City</th> </tr> </thead> <tbody> <tr> <td>Tanmay</td> <td>Bangalore</td> </tr> <tr> <td>Sachin</td> <td>Mumbai</td> </tr> </tbody> </table> <button>table reverse</button> </body> </html> |
f = f ? '' : '1';
а не проще f ^=1 ? |
:write: jQuery тут конечно нафиг
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> table { display: none; } #table_up{ background: #339900 } #table_down{ background: #FF6666 } .show table { display: table; } </style> <script> window.onload = function() { var table = document.querySelectorAll("#table_up, #table_down"), button = document.querySelector("button"), parent = document.body, f = +localStorage.getItem("f") || 0; function show() { parent.insertBefore(table[+!f], table[f]); parent.classList.add("show") } button.onclick = function() { f ^= 1; show(); localStorage.setItem("f", f) }; show() }; </script> </head> <body> <table id="table_up" class="table"> <caption>Basic Table UP</caption> <thead> <tr class="success"> <th>Name</th> <th>City</th> </tr> </thead> <tbody> <tr> <td>Tanmay</td> <td>Bangalore</td> </tr> <tr> <td>Sachin</td> <td>Mumbai</td> </tr> </tbody> </table> <table id="table_down" class="table"> <caption>Basic Table Down</caption> <thead> <tr> <th>Name</th> <th>City</th> </tr> </thead> <tbody> <tr> <td>Tanmay</td> <td>Bangalore</td> </tr> <tr> <td>Sachin</td> <td>Mumbai</td> </tr> </tbody> </table> <button>table reverse</button> </body> </html> |
Цитата:
и изменил Цитата:
|
jQuery тут конечно нафиг
Так по условию тараканов именно на ней должно быть решение, иначе очередной студент не получит диплома :) |
Часовой пояс GMT +3, время: 03:27. |