от внешних дивов можно абстрагироваться, они просто определяют положение текущего дня в неделе. 
	У меня отображается целая неделя, грубо говоря если сегодня среда, то понедельник и вторник будут обернуты в div class = "past", среда в div class="today", выходные в div class="holliday", остальные usual. вот так выглядит блок с заказом: <div class="order_box"> <span class="time">7 : 00 - </span> <span class="destination">Вологда(5001)</span> <div class="seat1 place">Иванов Иван</div> <div class="seat2 place free">свободно</div> <div class="seat3 place free">свободно</div> <div class="seat4 place free">свободно</div> <div class="approved"> Статус:подтверждено</div> </div> Если мы кликаем на seat2 к примеру, то там должна появиться такая конструкция 
<div class="seat2 place free">
   <form action="url" method="POST">
      <input type="text" name="name">
      <input type="submit" value="ok">
   </form>
</div>
Человек вводит туда свое ФИО, к примеру Сидоров Андрей, нажимает ок. Отрабатывается форма, данные улетают в базу, страница перезагружается и теперь мы видим такой блок: <div class="order_box"> <span class="time">7 : 00 - </span> <span class="destination">Вологда(5001)</span> <div class="seat1 place">Иванов Иван</div> <div class="seat2 place">Сидоров Андрей</div> <div class="seat3 place free">свободно</div> <div class="seat4 place free">свободно</div> <div class="approved"> Статус:подтверждено</div> </div>  | 
	
		
 makc9I, 
	так? 
<!DOCTYPE HTML>
<html>
    <head>
        <title>Untitled</title>
        <meta charset="utf-8">
        <script src="http://code.jquery.com/jquery-latest.js"></script>
        <script>
            $(function () {
                $(".free").mouseenter(function () {
                    $(this).text("бронь").css({
                        "background": "#FAD400",
                        "color": "#0000CD",
                        "cursor": "pointer"
                    })
                }).mouseleave(function () {
                    $(this).text("свободно").css({
                        "background": "",
                        "color": "",
                    })
                }).click(function () {
                    var myform = $("<form/>", {
                        "action": "url",
                        "method": "POST"
                    })
                    $("<input/>", {
                        "type": "text",
                        "name": "name"
                    })
                        .appendTo(myform);
                    $("<input/>", {
                        "type": "submit",
                        "value": "ok"
                    })
                        .appendTo(myform);
                    $(".free").off();
                    $(this).html(myform)
                });
            })
        </script>
    </head>
    <body>
        <div class="order_box">	<span class="time">7 : 00 - </span>
	<span class="destination">Вологда(5001)</span>
            <div class="seat1 place">Иванов Иван</div>
            <div class="seat2 place free">свободно</div>
            <div class="seat3 place free">свободно</div>
            <div class="seat4 place free">свободно</div>
            <div class="approved">Статус:подтверждено</div>
        </div>
    </body>
</html>
 | 
	
		
 да, это именно то, что надо.  
	Только интересно, почему фокус с этого инпута уже никуда не пропадает, т.е. как только мы кликнули в поле, мы уже не может просто кликнуть в соседнее поле, ничего не произойдет. Думаю это логично, но нужна кнопка отмена, которая будет возвращать прежний вид полю("свободно" или "бронь" при наведении). Еще надо дать имя инпуту такое же как и имя класса дива, внутрь которого мы кликнули, т.е. seat1-seat4. Также я немного модифицировал данные о блоке, теперь внешний див имеет такой вид: <div class="order_box" id="<уникальный id>"> Вот необходимо добавить скрытый инпут,value параметр которого будет содержать id родительского diva класса order_box. Пока это все написал и буду пробовать реализовать, может и у самого получится :)  | 
	
		
 makc9I, 
	$(".free").off(); это отключило все прежние установки. ... кнопка отмена ))... вот так проект разрастается ))) пробуйте сами что неполучится страшивайте.  | 
	
		
 стал изучать курс по Jquery от codeSchool. Хоть и курс малюсенький, но я после работы прихожу уставший и это дело тянется уже неделю. Само задание почти не движется. Пытаюсь делать методом тыка и тех малых знаний, что уже получил с курса. 
	Кнопку отмена добавил, но не так, как надо. добавил так: 
$(document).ready(function () {
			$(".today .free, .usual .free, .holliday .free").mouseenter(function () {
				$(this).text("бронь")
					   .css({
							"background": "#FAD400",
							"color": "#0000CD",
							"cursor": "pointer"
						})
			}).mouseleave(function () {
				$(this).text("свободно")
					   .css({
							"background": "",
							"color": ""
						})
			}).click(function () {
                    var myform = $("<form/>", {
                        "action": "<?PHP $_SERVER['PHP_SELF']; ?>",
                        "method": "POST"
                    })
                   $("<button> отмена</button>")
                        .appendTo(myform);
Все бы хорошо, но кнопка обрабатывается методом, указанным в форме при клике, так как лежит внутри ее(формы). Можно конечно вместо кнопки сделать какой-нибудь span или div, но хочется именно кнопку без лишних заморочек со стилями, тем более что новые браузеры позволяют вставить кнопку где угодно. Не обязательно внутри формы. Пытался сделать так: 
...
.click(function () {
   $(this).append("<button> отмена</button>");
}
не получается так, грубо говоря мне надо просто добавить button ниже формы внутри этого же дива класса free. Я еще не научился грамотно ходить по DOMу видимо, и делаю какие-то нелепости.  | 
	
		
 Проблему решил, все достаточно просто, завтра выложу, как получилось. 
	 | 
	
		
 вот такой получился код: 
	
$(".today .free, .usual .free, .holliday .free").mouseenter(function () {
	$(this).text("бронь")
            .css({
		"background": "#FAD400",
		"color": "#0000CD",
		"cursor": "pointer"
             })
	}).mouseleave(function () {
		$(this).text("свободно")
		   .css({
			"background": "",
			"color": ""
  		    })
	}).click(function () {
                var myform = $("<form/>", {
                    "action": "<?PHP $_SERVER['PHP_SELF']; ?>",
                    "method": "POST"
                 })
                 $("<input/>", {
                     "type": "text",
                     "name": "name",
         	     "class": "name_input"
                  })
                    .appendTo(myform);
                  $("<input/>", {
                      "type": "submit",
                      "value": "ok",
  		      "id": "name_submit"
                    })
                      .appendTo(myform);
			
                   $(".free").off();
                   $(this).html(myform);
		   $(this).append("<button> отмена</button>")
		   $(this).css ({
			"cursor":"default"
		   })
           })
})
Теперь осталось как-то удалить всю форму по нажатию кнопки отмена.  | 
	
		
 добавление к листингу такого: 
	
$("button").click (function(){
					$("#add_name_form").remove();
			})
не работает что-то  | 
	
		
 Практически все получилось. 
	Полная картина выглядит так: Имеется такой блок: <div class="order_box" id="56"> <span class="time">10 : 00 - </span> <span class="destination">п. Молочное(5007)</span> <div class="seat1 place">Иванов</div> <div class="seat2 place">Петров</div> <div class="seat3 place free">свободно</div> <div class="seat4 place free">свободно</div> <a class="approve_btn" href="/index.php?&id=56"> подтвердить </a> <div class="not_approved"> Статус:ожидает подтверждения</div> </div> Визуально выглядит так: ![]() При наведении на любую ячейку с надписью свободно видим следующее: ![]() Клик по ячейке приводит к такому: ![]() Вот код, который занимается обработкой сего чуда: 
$(document).ready(function () {
	$(".today .free, .usual .free, .holliday .free")
	.mouseenter(function () {
		$(this).text("бронь")
			   .css({
					"background": "#FAD400",
					"color": "#0000CD",
					"cursor": "pointer"
				})
	}).mouseleave(function () {
		$(this).text("свободно")
			   .css({
					"background": "",
					"color": ""
				})
	}).click(function () {
			var myform = $("<form/>", {
				"action": "http://auto/index.php",
				"method": "POST",
				"id": "add_name_form"
			})
			$("<input/>", {
				"type": "text",
				"name": "name",
				"class": "name_input"
			})
				.appendTo(myform);
			$("<input/>", {
				"type": "submit",
				"value": "ok",
				"id": "name_submit"
			})
				.appendTo(myform);
				
			var cell_class = $(this).attr("class").slice(0,5);
			var order_id = $(this).parent().attr("id");
			
			$("<input/>", {
				"type":"hidden",
				"name": "place",
				"value": cell_class
				
			})
				.appendTo(myform);
				
			$("<input/>", {
				"type":"hidden",
				"name": "order_id",
				"value": order_id
				
			})
				.appendTo(myform);
			
						
			
								
			$(".free").off();
			$(this).html(myform);
			$(this).append("<button> отмена</button>");
			$(this).css ({
					"cursor":"default"
			})
			
			$("button").click (function(){
				$("#add_name_form").remove();
				$(this).remove();
								
			})
		})
})
Во всем этом есть одна брешь: 
$(".free").off();
Как только мы вызываем метод off, мы лишаемся всех настроек для нашей ячейки, но это необходимо, чтобы можно было кликнуть в input text для ввода фамилии, и выводы мыши за пределы ячейки не приводили к отмене обработки. Но, вдруг мы случайно кликнули в ячейку и хотим отменить это действие, для этого я и добавил кнопку "отмена". Вот ее обработка: 
$("button").click (function(){
   $("#add_name_form").remove();
   $(this).remove();
})
Все, что я могу сделать, это удалить созданную ранее форму. Но хочется, чтобы вся обработка положения мышки также вернулась, думал, что для этого достаточно прикрутить назад такое: 
$(".today .free, .usual .free, .holliday .free")
	.mouseenter(function () {
		$(this).text("бронь")
			   .css({
					"background": "#FAD400",
					"color": "#0000CD",
					"cursor": "pointer"
				})
	}).mouseleave(function () {
		$(this).text("свободно")
			   .css({
					"background": "",
					"color": ""
				})
	})
Но как оказалось, прикручивать назад надо вообще весь код, но ведь в этом коде присутствует сама обработка нажатия на кнопку "отмена" и происходит рекурсия. Да и в целом не очень разумно дважды вызывать один и тот же код. Возникли мысли, что надо как-то обойтись без 
$(".free").off();
Но при этом как-то блокировать обработку мыши на момент клика по ячейке (бронь), чтобы выход за пределы ячейки не приходили к сбросу отображения формы, и сам клик в input text обрабатывался именно как клик туда(чтобы вводить текст), а не как клик по ячейке (бронь). Вот возникла проблема, решения пока не нашел.  | 
	
		
 рони посоветовал использовать метод bind, теперь я реализовал все обработчики через него, вышло примерно так: 
	вместо 
.mouseenter(function () {}
получилось 
.bind("mouseenter",( function () {} )
При обработке клика в ячейку я делаю следующее 
$(".free").unbind();
Как я понимаю, при нажатии на кнопку отмена нам необходима снова вызвать bind, но помимо обработчиков нужны ведь еще и сами действия, т.е. я принципиально не понимаю разницы между off и unbind.  | 
| Часовой пояс GMT +3, время: 06:36. |