Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.02.2016, 17:55
Интересующийся
Отправить личное сообщение для BIGserg Посмотреть профиль Найти все сообщения от BIGserg
 
Регистрация: 09.03.2014
Сообщений: 13

Выделение ячеек в таблице
Задача такая, в таблице при клике по любой ячейке менять её фон на зеленый, при повторном клике по той же ячейке удалять этот фон.

Я реализовал эту задачу, но сталкнулся с проблемой, если кликнуть по ячейке(фон станет зеленым), потом кликнуть еще раз что бы убрать этот фон и после этого кликнуть по другой ячейке, предыдущая ячйка снова сменит фон на зеленый. видимо у меня ошибка с использованием $(this)

Прошу помогите разобраться, что я сделал не так?
Код:


$( document ).ready(function() {
		$(".table_id").click(function() {
			var rtt = $(this);		
			if(rtt.attr('check') == 'none')
			{
				$('#but_green').click(function() {			
				rtt.attr('check','checked');
				rtt.attr('style', 'background:#00FF7F;');
			});
				$('#but_red').click(function() {			
				rtt.attr('check','checked');
				rtt.attr('style', 'background:#FF3030;');
			});		
			}
			else
			{
				rtt.attr('check','none');
			}
	});
});
Ответить с цитированием
  #2 (permalink)  
Старый 08.02.2016, 18:05
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

BIGserg, делегирование надо использовать.
Ответить с цитированием
  #3 (permalink)  
Старый 08.02.2016, 18:07
Интересующийся
Отправить личное сообщение для BIGserg Посмотреть профиль Найти все сообщения от BIGserg
 
Регистрация: 09.03.2014
Сообщений: 13

Вот тут можно попробовать: http://fecta.ru/index5.php
Ответить с цитированием
  #4 (permalink)  
Старый 08.02.2016, 18:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

BIGserg,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    .active{
       background:#00FF7F
    }
   td {
      background:#FF3030;
   }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
   <script>
   $(function(){
       $(".table_id").on("click", "td", function() {$(this).toggleClass("active")})
   })
  </script>
</head>

<body>
<table width="400" class="table_id" >
	<thead>
		<tr>
			<th>Title 1</th>
			<th>Title 2</th>
			<th>Title 3</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>Cell 1.1</td>
			<td>Cell 1.2</td>
			<td>Cell 1.3</td>
		</tr>
		<tr>
			<td>Cell 2.1</td>
			<td>Cell 2.2</td>
			<td>Cell 2.3</td>
		</tr>
	</tbody>
</table>
</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 08.02.2016, 18:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Decode
делегирование надо использовать.
необязательно
Ответить с цитированием
  #6 (permalink)  
Старый 08.02.2016, 18:44
Интересующийся
Отправить личное сообщение для BIGserg Посмотреть профиль Найти все сообщения от BIGserg
 
Регистрация: 09.03.2014
Сообщений: 13

Большое спасибо!
Ответить с цитированием
  #7 (permalink)  
Старый 08.02.2016, 18:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Выбор цвета для ячейки таблицы
BIGserg,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    .red{
       background:#FF0000
    }
   .green{
     background-color: #008000;
   }
   td {
       background-color: #FFFACD;
   }
   div{
      width: 100px;
      height: 30px;
   }
   .color{
     display: none;
   }
  .select{
      border: dashed 2px #8B4513;
      margin: -4px;
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
   <script>
   $(function(){
        var el;
       function setColor()
       {  $(".table_id td").removeClass("select");
          var color = $(this).data("color");
          el.addClass(color).data("color",color);
          $(".color").hide()
       }
       $(".table_id").on("click", "td", function() {
       var color = $(this).data("color");
       $(".table_id td").removeClass("select")
       if(color){ $(this).removeClass(color).removeData("color");$(".color").hide() }
       else {
         el=$(this);
         el.addClass("select");
         $(".color").show()}
         })
       $(".color").on("click", setColor)
   })
  </script>
</head>

<body>
<table width="400" class="table_id" >
    <thead>
        <tr>
            <th>Title 1</th>
            <th>Title 2</th>
            <th>Title 3</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Cell 1.1</td>
            <td>Cell 1.2</td>
            <td>Cell 1.3</td>
        </tr>
        <tr>
            <td>Cell 2.1</td>
            <td>Cell 2.2</td>
            <td>Cell 2.3</td>
        </tr>
    </tbody>
</table>
<div class="color red" data-color="red"></div>
<div class="color green" data-color="green"></div>
</body>

</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отменить в выделение текста в таблице при кликах и вообще двойные клики отменить monkey_gelada Events/DOM/Window 1 21.08.2015 08:28
Выделение ячеек с одинаковыми классами в таблице AnsiAnsi Элементы интерфейса 4 16.09.2014 09:45
Выделение колонки в таблице darl Общие вопросы Javascript 10 19.09.2013 14:55
Выделение только одного <tr> в таблице vitek25 Элементы интерфейса 3 11.01.2013 11:09
не удается порулить шириной ячеек в таблице ctocopok Events/DOM/Window 1 24.07.2011 18:00