Изменение класса Div-ов по клику...
Здравствуйте... Я новичек, а значит пинать нежно плиз:) ...
Есть несколько div: <div id="win"> <div id="out_txt_1" class="happyend" contenteditable="true">текст</div> <div id="out_txt_2" class="happyend" contenteditable="true">текст</div> <div id="out_txt_3" class="happyend" contenteditable="true">текст</div> <div id="out_txt_4" class="happyend" contenteditable="true">текст</div> <div id="out_txt_5" class="happyend" contenteditable="true">текст</div> <div id="out_txt_6" class="happyend" contenteditable="true">текст</div> <div id="out_txt_7" class="happyend" contenteditable="true">текст</div> <div id="out_txt_8" class="happyend" contenteditable="true">текст</div> <div id="out_txt_9" class="happyend" contenteditable="true">текст</div> <div id="out_txt_10" class="inviz" contenteditable="true">текст</div> <div id="out_txt_11" class="inviz" contenteditable="true">текст</div> <div id="out_txt_12" class="inviz" contenteditable="true">текст</div> <div id="out_txt_13" class="inviz" contenteditable="true">текст</div> <div id="out_txt_14" class="inviz" contenteditable="true">текст</div> <div id="out_txt_15" class="inviz" contenteditable="true">текст</div> <div id="out_txt_16" class="inviz" contenteditable="true">текст</div> <div id="out_txt_17" class="inviz" contenteditable="true">текст</div> <div id="out_txt_18" class="inviz" contenteditable="true">текст</div> <div id="out_txt_19" class="inviz" contenteditable="true">текст</div> <div id="out_txt_20" class="inviz" contenteditable="true">текст</div> </div> Кнопка: <div id="getdiv"><input type="button" value="Добавить" onclick="getEl()"/></div> И Скрипт:
<script language="JavaScript">
function getEl(){
for(i=10;i<=20;i++)
document.getElementById('out_txt_'+i).className='happyend';
}
</script>
Css:
.inviz {display:none;}
.happyend {display:block;}
Скрипт меняет класс сразу у всех div начиная с 10-го... А как сделать что б по клику на кнопку менялся сначало у 10-го.. По второму клику у 11-го и т.д.???Второй день ищу ниче не могу найти... Нужно чтоб класс .inviz менялся на класс .happyend и соответственно Div-ы становились видимыми |
<!DOCTYPE HTML>
<html>
<head> <style>
.red {
background-color:red;
}
</style></head>
<body>
<div id='parent'>
<div id="out_txt_1" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_2" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_3" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_4" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_5" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_6" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_7" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_8" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_9" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_10" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_11" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_12" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_13" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_14" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_15" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_16" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_17" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_18" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_19" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_20" class="inviz" contenteditable="true">текст</div>
</div>
<script>
!function () {
var elem = document.getElementById('parent');
var child = elem.children;
var i = child.length;
elem.onclick = function (e) {
i--;
if (i < 0) return;
child[i].className = 'red';
}
}();
</script>
</body>
</html>
|
Чет не получается... Щас тему подредактирую может Вы меня не так поняли...
|
менялись у элементов с классом "inviz" начиная с первого и до последнего?
|
Да... чтоб от (div id="out_txt_10") до (div id="out_txt_20") класс менялся на .happyend
|
<!DOCTYPE HTML>
<html>
<head> <style>
.red {
background-color:red;
}
</style></head>
<body>
<div id='parent'>
<div id="out_txt_1" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_2" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_3" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_4" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_5" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_6" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_7" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_8" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_9" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_10" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_11" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_12" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_13" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_14" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_15" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_16" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_17" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_18" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_19" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_20" class="inviz" contenteditable="true">текст</div>
</div>
<script>
!function () {
var elem = document.getElementById('parent');
var child = elem.getElementsByClassName('inviz');
var leng = child.length;
var i = 0;
elem.onclick = function (e) {
if (i >= leng) return;
child[i].className = 'inviz red';
i++;
}
}();
</script>
</body>
</html>
|
Когда отдельно запускаю эт работает... А вставляю в свой сайт и не хочет работать...
<script>
!function () {
var elem = document.getElementById('win');//у меня родитель с id "win"
var child = elem.getElementsByClassName('inviz');
var leng = child.length;
var i = 0;
// по нажатию на кнопку
document.getElementById('getdiv').onclick = function (e) {
if (i >= leng) return;
child[i].className = 'inviz happyend';// вот тут не понятно почему 2 класса пишутся???
i++;
}
}();
</script>
Правильно ли я подредактировал???? И может ли мешать то, что на этих дивах Drag&Drop jqyery действует??? |
ссылку на сайт где не работает ...
|
Он пока на компе...
|
а ну да я про кнопку забыл =)
|
вот так
<!DOCTYPE HTML>
<html>
<head>
<style>
.happyend {
background-color:red;
}
</style>
</head>
<body>
<div id="win">
<div id="out_txt_1" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_2" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_3" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_4" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_5" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_6" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_7" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_8" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_9" class="happyend" contenteditable="true">текст</div>
<div id="out_txt_10" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_11" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_12" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_13" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_14" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_15" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_16" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_17" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_18" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_19" class="inviz" contenteditable="true">текст</div>
<div id="out_txt_20" class="inviz" contenteditable="true">текст</div>
</div>
<a href='#' id='bt'>go</a>
<script>
!function () {
var elem = document.getElementById('win');//у меня родитель с id "win"
var child = elem.getElementsByClassName('inviz');
var button = document.getElementById('bt');
var leng = child.length;
var i = 0;
button.onclick = function (e) {
if (i >= leng) return;
child[0].className = 'happyend';
i++;
return false;
}
}();
</script>
</body>
</html>
|
Выкину по масмуму кода может кто че заметит...
Index.html ==>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link href="css/menu.css" rel="stylesheet" type="text/css" />
<link href="css/head.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/menu.js"></script>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.7.3.custom.min.js"></script>
<script language="JavaScript">
function l_image(a)
{
document.images["tool"].src=a
}
</script>
<script>
!function () {
var elem = document.getElementById('parent');
var child = elem.getElementsByClassName('inviz');
var leng = child.length;
var i = 0;
document.getElementById('getdiv').onclick = function (e) {
if (i >= leng) return;
child[i].className = 'inviz happyend';
i++;
}
}();
</script>
<script language="JavaScript">
$(document).ready(init);
function init(){
$(".happyend").draggable({
containment:'parent',
cursor: 'move'
});
$("#ass2").click(function(){
$(".happyend").draggable("disable");
});
$("#ass1").click(function(){
$(".happyend").draggable("enable");
});
}
</script>
<title></title>
</head>
<body>
<div id="getdiv"><input type="button" value="Добавить"/></div>
<div id="win">
<IMG SRC="images/art/clp85.jpg" NAME="tool"/>
<div id="out_txt_1" class="happyend" contenteditable="true">Текст</div>
<div id="out_txt_2" class="happyend" contenteditable="true">Текст</div>
<div id="out_txt_3" class="happyend" contenteditable="true">Текст</div>
<div id="out_txt_4" class="happyend" contenteditable="true">Текст</div>
<div id="out_txt_5" class="happyend" contenteditable="true">Текст</div>
<div id="out_txt_6" class="happyend" contenteditable="true">Текст</div>
<div id="out_txt_7" class="happyend" contenteditable="true">Текст</div>
<div id="out_txt_8" class="happyend" contenteditable="true">Текст</div>
<div id="out_txt_9" class="happyend" contenteditable="true">Текст</div>
<div id="out_txt_10" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_11" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_12" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_13" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_14" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_15" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_16" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_17" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_18" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_19" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_20" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_21" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_22" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_23" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_24" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_25" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_26" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_27" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_28" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_29" class="inviz" contenteditable="true">Дополнительное поле</div>
<div id="out_txt_30" class="inviz" contenteditable="true">Дополнительное поле</div>
</div>
<div id="block_om">Для смены режима "перемещения" или "редактирования" используйте эти кнопки.
<input id="ass1" type="button" value="Перемещать" Onclick="init()">
<input id="ass2" type="button" value="Редактировать" Onclick="init1()">
</div>
</body>
|
Цитата:
|
Цитата:
|
Цитата:
|
сhild[0].className = 'happyend';// тут вроде [i] нужно нет. Открой те консоль и гляньте есть там ошибки или нет |
<script>
!function () {
var elem = document.getElementById('win');
var child = elem.getElementsByClassName('inviz');// TypeError: elem is null
var button = document.getElementById('getdiv');
var leng = child.length;
var i = 0;
button.onclick = function (e) {
if (i >= leng) return;
child[0].className = 'happyend';
i++;
return false;
}
}();
</script>
|
выведите в консоль(console.log(elem)) чему равно elem и скопируйте
|
[14:29:05.918] ReferenceError: elem is not defined
|
такая ошибка бывает только если не может найти элемент с таким id, проблема не в моем коде
|
Ок... Спасибо... Внес ясность... Буду уже сам разбираться...
|
Вот я лох:)... Ты же пишешь скрипт в конце.... А я лошара его в Head пру... Все работает Спасибо еще раз:)
|
Цитата:
|
| Часовой пояс GMT +3, время: 13:49. |