Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jquery, html manipulatoin (https://javascript.ru/forum/jquery/3277-jquery-html-manipulatoin.html)

qdrj 03.04.2009 00:00

jquery, html manipulatoin
 
подскажите пожалуйста
имеется таблица, по какому-то событию в таблице удаляются все строки кроме первой. т.е от этого
Код:

<table>
 <tr>
  <td></td>
  <td></td>
 </tr>
 <tr>
  <td></td>
  <td></td>
 </tr>
 <tr>
  <td></td>
  <td></td>
 </tr>
</table>

должно остаться
Код:

<table>
 <tr>
  <td></td>
  <td></td>
 </tr>
</table>


x-yuri 03.04.2009 03:03

внимание вопрос:

qdrj 03.04.2009 16:35

плохо сформулировал ?
после выполнение скрипта
$("a").click(function()
{
 $("tr:gt(0)").empty();
});

остается
Код:

<table>
 <tr>
  <td></td>
  <td></td>
 </tr>
 <tr></tr>
 <tr></tr>
</table>

а хотелось бы
Код:

<table>
 <tr>
  <td></td>
  <td></td>
 </tr>
</table>


x-yuri 03.04.2009 17:37

empty удаляет содержимое, а тебе нужно что-то другое - http://docs.jquery.com/Manipulation
ты совсем немного промахнулся ;-)

qdrj 03.04.2009 17:41

спасибо, просмотрел, того что надо не нашел, мб зеленый еще.
я сделал немного по-другому, заключил все <tr> после первой строки в тег <tbody> и по клику очищаю его содержимое

e1f 03.04.2009 17:46

$("a").click(function()
{
 $("tr:gt(0)").remove();
});

А вариант с tbody весьма правилен, если тебе надо очистить таблицу, а шапку оставить

x-yuri 03.04.2009 17:52

remove

qdrj 03.04.2009 18:32

e1f спасибо за подсказку, то что надо, пригодится на будущее.
сейчас оставил вариант с tbody.

qdrj 04.04.2009 20:01

еще 1 вопрос - как запретить прокрутку страницы, если к body применять
overflow: hidden;
то просто исчезают полосы прокрутки, но прокручивать страницу можно(колесиком или клавиатурой)

x-yuri 05.04.2009 00:56

а зачем?

qdrj 05.04.2009 14:11

Вложений: 1
делаю модальное окно, для этого создаю
<div class="overlay"></div>

.overlay {
background:#666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) repeat scroll 50% 50%;
opacity: 0.5; 
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50); /*filter for ie*/
height:100%;width:100%;
position: absolute;
left:0; top:0;
}

а сверху него уже вывожу модальное окно. так вот див с классом оверлей занимает 100% по высоте и ширине ЭКРАНА, а не 100% от body. поэтому мне нужно запретить пользователю прокручивать страничку, чтобы он не увидел незакрашенный низ страницы.

x-yuri 05.04.2009 14:21

а как насчет "height: 100%" -> "bottom: 0px"?

qdrj 05.04.2009 14:38

не работает.
по-моему тут надо как-то overflow:hidden у body делать. интересно, то что в файрфоксе прокручивать после overflow:hidden нельзя, а в ие и опере можно

x-yuri 05.04.2009 14:47

а ты запихни содержимое в div и ему назначай overflow: hidden;

Kolyaj 06.04.2009 12:59

Цитата:

Сообщение от qdrj
так вот див с классом оверлей занимает 100% по высоте и ширине ЭКРАНА, а не 100% от body

Надо просто сделать, чтобы оверлей занимал 100% страницы, а не экрана.

x-yuri 06.04.2009 13:12

Цитата:

Надо просто сделать, чтобы оверлей занимал 100% страницы, а не экрана
минутку, под экраном подразумевается клиентская область окна браузера? А то я ж о другом подумал

p.s. но лучше имхо чтобы возможности прокрутки не было, т.е. чтобы содержимое страницы не превышало размеры клиентской области

Kolyaj 06.04.2009 13:15

Цитата:

Сообщение от x-yuri
т.е. чтобы содержимое страницы не превышало размеры клиентской области

Это не всегда возможно, иногда нужно задизаблить обычную страницу.

x-yuri 06.04.2009 13:45

Цитата:

Это не всегда возможно, иногда нужно задизаблить обычную страницу
а нету кроссбраузерного способа это сделать? У меня была идея запихнуть содержимое страницы (пусть даже ее размеры превышают клиентскую область) в div и поставить ему height: 100%; overflow: hidden; Но в ie 6 не работает
Или именно поэтому "это не всегда возможно"

Kolyaj 06.04.2009 14:16

Цитата:

Сообщение от x-yuri
а нету кроссбраузерного способа это сделать?

Сделать что? Задизаблить? Нужно просто растянуть див на ширину/высоту документа, а не экрана.

qdrj 06.04.2009 14:32

я совместил два способа. т.е. создаю
<div id="box"></div>

.overlay {
background:#666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) repeat scroll 50% 50%;
opacity: 0.5; 
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);
width:100%;
position: absolute;
left:0; top: 0px; 
}

$("#box").addClass("overlay"); $("#box").height($(document).height());

и также
$("body").css("overflow","hidden");

Riim 07.04.2009 03:45

Тупое решение:
window.onload = function() {
	setInterval(function() {
		window.scrollTo(0, 0);
	}, 10);
};


А вот не тупое window.onscroll=function(){return false}; работать отказалось.

Tim 21.11.2010 14:25

Цитата:

А вот не тупое window.onscroll=function(){return false}; работать отказалось.
Вариации вида:
$(window).scroll(function(e) {
	e.preventDefault();
	return false;
});

тоже не работают. Уныло всё это :( , когда же ИЕ научится "position: fixed" нормально понимать


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