Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Элементарно, но не знаю как) (https://javascript.ru/forum/misc/32924-ehlementarno-no-ne-znayu-kak.html)

YozUP 04.11.2012 17:00

Элементарно, но не знаю как)
 
Ребята, прошу помощи. Не получается найти ответ...
Смысл вроде простейший...
Есть таблица к примеру:
<table width="10" border="0">
  <tr>
    <td  id="айди" class="класс"></td>
  </tr>
</table>

Как реализовать смену фона ячейки в таблице по клику туда сюда...
Тоесть кликнул фон сменился, еще кликнул обратно сменился...
Тоесть вот например как выглядеть будет

Margarita 04.11.2012 18:04

как вариант: при первом клике навешивать на тд какой-то класс например с другим фотонм, затем при след. клике его снимать и убирать фон..
решение на juery
$("td").click(fucntion() {
if($(this).hasClass("other_bg") {
$(this).removeClass("other_bg"); 
} else {$(this).addClass("other_bg");
}
});

YozUP 04.11.2012 18:17

Цитата:

Сообщение от Margarita (Сообщение 214071)
как вариант: при первом клике навешивать на тд какой-то класс например с другим фотонм, затем при след. клике его снимать и убирать фон..
решение на juery
$("td").click(fucntion() {
if($(this).hasClass("other_bg") {
$(this).removeClass("other_bg"); 
} else {$(this).addClass("other_bg");
}
});

Почему то ошибку пишет в восьмой строке, скобки вроде все правильно(... Вот скрин...

nerv_ 04.11.2012 18:24

Margarita, toggle/toggleClass.

YozUP 04.11.2012 18:24

Вот архив с файлами, прошу если можно помогите ревализавать эту идею... smena_td.zip

YozUP 04.11.2012 19:12

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 214080)
fucntion

Точно) Спасибо... А в таблице теперь как сделать чтоб по клику это срабатывало?

Hoshinokoe 05.11.2012 00:38

YozUP,

$(document).ready(function(){
   $("td").toggleClass("other_bg");
});

При клике по td будет добавлять/удалять класс other_bg. В нем необходимо прописать другую картинку.

Подробнее здесь.

a_l 05.11.2012 00:41

На JS:
[].forEach.call(document.getElementsByTagName('td'), function(el) {
  el.onclick = function() {
    this.className = (/other_bg/.test(this.className)) ? '' : 'other_bg';
  };
});​

nerv_ 05.11.2012 00:49

Цитата:

Сообщение от Hoshinokoe
$(document).ready(

$(

a_l, т.е. выше был не js? :)

a_l 05.11.2012 00:59

Цитата:

Сообщение от nerv_ (Сообщение 214182)
$(

a_l, т.е. выше был не js? :)

Не ванильный:)

nerv_ 05.11.2012 01:13

a_l,
1. зачем создавать массив, чтобы сразу его выбросить?
2. зачем использовать регулярные выражения там, где они не нужны?
3. а если классов много?
4. а если обработчик клика будет не один?

a_l 05.11.2012 01:22

nerv_, чтоб удалял/добавлял класс:
(/other_bg/.test(this.className)) ? this.className=this.className.replace(' other_bg','') : this.className += ' other_bg';

Можно после 4 пункта придумать ещё и 5 - "а если у пользователя выключен javascript?"

YozUP 05.11.2012 15:42

Да теперь ясно все... Спасибо огромное, А если усложнить. Тоесть значение в базу записывалось, тоесть при обновлении страницы оставалось измененным а не сбрасывалось. В куки не подойдет( Как сделать чтоб значение конечное записывалось и по нему определялся класс... Тоесть например
1=class1
0=class0

Nekromancer 05.11.2012 16:58

a_l,
classList, не? Или тут гугл тоже рекомендует className?

Nekromancer 05.11.2012 17:02

YozUP,
Погуглите, от этого вы не умрете.

nerv_ 06.11.2012 22:16

Цитата:

Сообщение от a_l
Можно после 4 пункта придумать ещё и 5 - "а если у пользователя выключен javascript?"

все описанные мной проблемы решал этот пост.
Цитата:

Сообщение от a_l
(/other_bg/.test(this.className)) ? this.className=this.className.replace(' other_bg','') : this.className += ' other_bg';

ну и что это такое? А если класс будет other_bg-bla-bla-bla?

YozUP 08.11.2012 17:17

Цитата:

Сообщение от Nekromancer (Сообщение 214283)
YozUP,
Погуглите, от этого вы не умрете.

) В гугле можно найти многое и даже больше... Но если бы можно было найти все!) Тогда зачем все остальное? Пример программки)))

input q$
q$filter:anyWord();
google iset:q$
if q$=OK() then STOP SEARCH;
else GO TO special^forum;
:lol: :dance:


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