Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> DOM, Встроенный календарь не DOM ?
Telez  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 123
Пользователь №: 39448
На форуме: 2 года, 7 месяцев, 11 дней
Карма:




Вопрос к профессионалам jQuery.
Я построил календарь, который загружаю с помощью load() на страницу.
Я хочу чтобы на каждый клик по ячейке, менялся ее цвет.
Проблема в том, что я никак не могу выбрать ячейку.
Мне объяснили что нужно пользоваться delegate() or on().
Почему?
Разве мой встроенный календарь не является DOM?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 7 лет, 5 месяцев, 10 дней
Карма: 552




Ты бы код показал... На jsfiddle.net выложи smile.gif
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Telez  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 123
Пользователь №: 39448
На форуме: 2 года, 7 месяцев, 11 дней
Карма:




Код еще сырой.
Вот код календаря.

//month name + year
echo "<div class=month-header>{$month_name[$_POST[month]]}"." {$_POST[year]}</div>";

//day name
echo "<div class=week-day-name>{$day_name[0]}</div>";
echo "<div class=week-day-name>{$day_name[1]}</div>";
echo "<div class=week-day-name>{$day_name[2]}</div>";
echo "<div class=week-day-name>{$day_name[3]}</div>";
echo "<div class=week-day-name>{$day_name[4]}</div>";
echo "<div class=week-day-name>{$day_name[5]}</div>";
echo "<div class=week-day-name>{$day_name[6]}</div>";

echo "<div style='clear:both;'></div>";
//month
//insert empty days

$day_of_week = date('w', mktime(0, 0, 0, $_POST[month], 1, $_POST[year]));
if($day_of_week == 0) $day_of_week = 7; //if Voskresen'e
for($i = 1; $i < $day_of_week; ++$i)
{
echo "<div class=empty-day></div>";
}
$current_date = getdate();

//insert days + status
// 0 - free; 1 - Registration; 2 - Reserved

while($row = mysql_fetch_array($result))
{
if( $row['year'] < $current_date['year'] ||
(
$row['year'] == $current_date['year'] && $row['month'] < $current_date['mon']) ||
(
$row['year'] == $current_date['year'] && $row['month'] == $current_date['mon'] && $row['day'] < $current_date['mday']))
{
echo "<div class='pastDay' id='{$row['date']}'><div>{$row['day']}</div><div class='price'></div></div>";
}
else
{
switch($row['status'])
{
case 0:
echo "<div class='freeDay' id='{$row['date']}'><div>{$row['day']}</div><div class='price'>{$row['price']}$</div></div>";
break;
case 1:
echo "<div class='orderDay' id='{$row['date']}'><div>{$row['day']}</div> <div class='price'>{$row['price']}$</div></div>";
break;
case 2:
echo "<div class='reservedDay' id='{$row['date']}'><div>{$row['day']}</div> <div class='price'>{$row['price']}$</div></div>";
break;
default:
echo "<div class='freeDay' id='{$row['date']}' onclick='selectDay(selected_days,this);'>
<div>
{$row['day']}</div> <div class='price'>{$row['price']}$</div>
</div>"
;
break;
}
}


//close week on Sunday
$name_of_day=date( "D", mktime(0,0,0,$row['month'],$row['day'], $row['year']) );
if(strcmp($name_of_day,"Sun")==0)
{
echo "<div style='clear:both;'></div>";
}
}

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
mvg  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 474
Пользователь №: 37895
На форуме: 3 года, 4 месяца, 3 дня
Карма: 22




Цитата (Telez @ 8.12.2014 - 19:04)
Вопрос к профессионалам jQuery.
Я построил календарь, который загружаю с помощью load() на страницу.
Я хочу чтобы на каждый клик по ячейке, менялся ее цвет.
Проблема в том, что я никак не могу выбрать ячейку.
Мне объяснили что нужно пользоваться delegate() or on().
Почему?
Разве мой встроенный календарь не является DOM?

DOM - Document Object Model.
Календарь - какая-то часть объектной модели всего документа, какая-то часть ДОМ.

Цитата
Мне объяснили что нужно пользоваться delegate() or on().
Почему?


Потому что on('click') и тогда по клику на div числа месяца позволит узнать где (конкретную ячейку) нужно поменять цвет.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25980
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 19 дней
Карма: 725

Не курю:
1 год, 2 месяца, 5 дней


Цитата
Вопрос к профессионалам jQuery.


Цитата
echo "<div class=week-day-name>{$day_name[0]}</div>";
    echo "<div class=week-day-name>{$day_name[1]}</div>";
    echo "<div class=week-day-name>{$day_name[2]}</div>";
    echo "<div class=week-day-name>{$day_name[3]}</div>";
    echo "<div class=week-day-name>{$day_name[4]}</div>";
    echo "<div class=week-day-name>{$day_name[5]}</div>";
    echo "<div class=week-day-name>{$day_name[6]}</div>";


профессионалы jQuery в акуе. побежали проверять мануал.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 7 лет, 5 месяцев, 10 дней
Карма: 552




Примерно так
$('.calendar').on('click', '.cell', function() {
$(this).css('background-color', 'yellow');
});
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Telez  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 123
Пользователь №: 39448
На форуме: 2 года, 7 месяцев, 11 дней
Карма:




Всем спасибо за ответы.
Но все-таки хотелось бы понять ПОЧЕМУ встроенный динамично код не может быть DOM?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 290
Пользователь №: 40589
На форуме: 1 год, 11 месяцев, 29 дней
Карма: 19




может. почитай про метод jquery - live. там подробно описано как работает то, что ты хочешь получить.
метод live сейчас удален, его аналог есть то, что написал Winston
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Hello  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 837
Пользователь №: 32378
На форуме: 4 года, 6 месяцев, 23 дня
Карма: 50




Telez он DOM, просто когда ты вешаешь событие, его еще нет в DOM и событие никуда не вешается.
depp давно уже устарело, нужно использовать только `on`


--------------------
VPS от 5$, первые 2 месяца - бесплатно.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 290
Пользователь №: 40589
На форуме: 1 год, 11 месяцев, 29 дней
Карма: 19




Hello
я специально написал про live, так как там более понятно и доступно написано в документации для чего он нужен по сравнению с on. также выше я написал что он удален и следует использовать вариант от Winston
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Telez  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 123
Пользователь №: 39448
На форуме: 2 года, 7 месяцев, 11 дней
Карма:




Спасибо. Несколько слов - и все понятно.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса