Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.01.2013, 19:49
Новичок на форуме
Отправить личное сообщение для vitek25 Посмотреть профиль Найти все сообщения от vitek25
 
Регистрация: 25.07.2011
Сообщений: 9

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


Необходимо выделить одну строку в таблице по клику на ней.

Сейчас выделяется несколько строк. Например нажал на первую - выделилась первая, нажал на вторую - выделилась вторая.

А мне надо так

нажал на первую - выделилась

нажал на вторую - первая стала не выделенной, а вторая выделилась.

Вот что есть из кода

function shHide(divId)  
    { 
        var div = document.getElementById(divId); 
	    if (div.className  == "tab_act")  
        { 
			
            div.className = ""; 
        } 
        else  
        { 
            div.className = "tab_act"; 
			
        } 
    }


строки формируются в цикле

echo  '<tr id="view_table'.$i.'" onClick="shHide(\'view_table'.$i.'\')">';
Ответить с цитированием
  #2 (permalink)  
Старый 10.01.2013, 21:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

vitek25,
Вариант...сохранять данные предыдущего нажатия
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
tr.tab_act  td{
  background: #FFFF33
}
</style>
  <title></title>
</head>
<body>
<table width="300" height="100" border="1">
  <tr onclick="shHide(this)" >
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr onclick="shHide(this)">
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr onclick="shHide(this)">
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr onclick="shHide(this)">
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>

<script type="text/javascript">
shHide = function (c) {
    var a;
    return function (b) {
        a != b ? (b.className = c, a && (a.className = ""), a = b) : a = b.className = ""
    }
}("tab_act");
</script>
</body>
</html>

Последний раз редактировалось рони, 11.01.2013 в 02:14. Причина: this.id => this
Ответить с цитированием
  #3 (permalink)  
Старый 10.01.2013, 21:28
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от vitek25
нажал на вторую - первая стала не выделенной, а вторая выделилась
Cтандартный Вариант: - по клику - удаляем класс "Асtive" со всех возможных элементов текущих кликов
и добавлям данный класс (Асtive) к текущему кликанутому
Cкрытие - разворачивание-выделение устанавливаем в css по классу
=======================
(*Хотя поглядел:рони, чуть улучшил - удалил перебор снятия класса с предыдущего элемента
в принципе можно было и без ID - запихивать в old_divId = this

Последний раз редактировалось Deff, 10.01.2013 в 21:36.
Ответить с цитированием
  #4 (permalink)  
Старый 11.01.2013, 11:09
Новичок на форуме
Отправить личное сообщение для vitek25 Посмотреть профиль Найти все сообщения от vitek25
 
Регистрация: 25.07.2011
Сообщений: 9

сделал как Рони написал, все отлично работает. Спасибо большое
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как с помощью javascript взять данные из одного файла html и закинуть в другой? rusik Общие вопросы Javascript 10 08.08.2016 12:11
как отменить скролл в мобильном браузере только для одного элемента? mitiya Общие вопросы Javascript 5 09.08.2012 23:38
Элементарный подсчет и калькулятор PashaShulga Общие вопросы Javascript 5 14.03.2012 21:42
Выделение строки в таблице posta ExtJS 5 23.06.2011 12:31
Выбор только одного чекбокса nashekino Общие вопросы Javascript 7 23.10.2008 00:23