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, время: 06:04. |