powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как обратиться к элементу стр без ID?
10 сообщений из 10, страница 1 из 1
Как обратиться к элементу стр без ID?
    #35019954
armix2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, что бы среагировать на мышь я пишу так:

<div class="submenuItem" id="podMenu1" onMouseOver="mouseOverPodMenuItemFunc('podMenu1')" onMouseOut="mouseOutPodMenuItemFunc('podMenu1');">

в коде я передаю функции ID элемента, потом в функции манипулирую.

Вопрос, как можно обойтись без передачи ID, просто неохота для каждого элемента писать новый ID в вызове mouseOverPodMenuItemFunc и mouseOutPodMenuItemFunc?

Т.е что-то передавать, что и было бы в дальнейшем связью с элементом, например где-то видел оператор this, но он не работает!
...
Рейтинг: 0 / 0
Как обратиться к элементу стр без ID?
    #35020200
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведите пример вашего неработающего кода с this , и посмотрим, в чем проблема.
...
Рейтинг: 0 / 0
Как обратиться к элементу стр без ID?
    #35021165
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
this - это объект, а ты передавай this.id - свой идентефикатор
...
Рейтинг: 0 / 0
Как обратиться к элементу стр без ID?
    #35022111
Ghirik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно вообще в тэгах ни чего не писать, ну или только "id" типа такого:
<div id="blabla">
</div>
Да и "id" не обязательно.
А при начальной загрузке, по событию window.onload запускать функцию, которая в цикле обойдет все дивы, присвоит им классы и назначит обработчиков событий. Если однотипных элементов на странице очень много, то выигрышь в скорости загрузки страницы очень ощутимый.

Вот наглядный пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
<!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" xml:lang="en" lang="en"> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="javascript">
<!--

function ok() { //Функция начальной установки прозрачности.
    var img = document.getElementsByTagName('img');
    for(var c =  0 ; c < img.length; c++) {
        img[c].src = 'img/' + (c +  1 ) + '.jpg';
        img[c].onmouseover = eff;
        img[c].onmouseout = eff;
        img[c].filters ? img[c].style.filter = 'alpha(opacity=' + s + ')' : img[c].style.opacity = s/ 100 ;
    }
}

    // Временные единицы относительные, подбирать экспериментально.
var up =  10 ; // Время выполнения эффекта, появление.
var dn =  15 ; // Время выполнения эффекта, исчезновение.
var s =  10 ;  // Начальная прозрачность, от  0 .
var r =  100 ; // Конечная прозрачность, до  100 .
/*----------------------------------------------------------------*/
var x =  25 /up;
var y = - 25 /dn;
var z = new Array();
var timer = new Array();
function eff(e) {
    var i = this.id;
    if (timer[i]) {
        clearInterval(timer[i]);
    }
    if (!e) e = window.event;
    if ((e.type) != 'mouseover') {
        z[i] = y;
        var t = dn;
    }
    else {
        z[i] = x;
        var t = up;
    }
        timer[i] = setInterval(function (i){return function(){ time(i)}}(this), t);
}

function time(i) {
    if (i.filters) {
        i.filters.alpha.opacity += z[i.id];
        var c = i.filters.alpha.opacity;
    }
    else {
        var c = i.style.opacity* 100 ;
        c += z[i.id];
        i.style.opacity = c/ 100 ;
    }
    if (c<=s){if(i.filters){i.filters.alpha.opacity=s}else{i.style.opacity=s/ 100 };clearInterval(timer[i.id]);return}
    if (c>=r){if(i.filters){i.filters.alpha.opacity=r}else{i.style.opacity=r/ 100 };clearInterval(timer[i.id]);return}
}
//-->
</script>
</head>
<body onload="ok()">
<img id="i1" />
<img id="i2" />
<img id="i3" />
<img id="i4" />
</body>
</html>
А здесь можно посмотреть работу
...
Рейтинг: 0 / 0
Как обратиться к элементу стр без ID?
    #35022115
Ghirik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного поспешил, для тэга img по спецификации нужно ещё пару атрибутов указывать.
Вот так правильно.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
<!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" xml:lang="en" lang="en"> 
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
<!--
function ok() { //Функция начальной установки прозрачности.
    var img = document.getElementsByTagName('img');
    for(var c =  0 ; c < img.length; c++) {
        img[c].src = 'img/' + (c +  1 ) + '.jpg';
        img[c].onmouseover = eff;
        img[c].onmouseout = eff;
        img[c].filters ? img[c].style.filter = 'alpha(opacity=' + s + ')' : img[c].style.opacity = s/ 100 ;
    }
}

    // Временные единицы относительные, подбирать экспериментально.
var up =  10 ; // Время выполнения эффекта, появление.
var dn =  15 ; // Время выполнения эффекта, исчезновение.
var s =  10 ;  // Начальная прозрачность, от  0 .
var r =  100 ; // Конечная прозрачность, до  100 .

var x =  25 /up;
var y = - 25 /dn;
var z = new Array();
var timer = new Array();
function eff(e) {
    var i = this.id;
    if (timer[i]) {
        clearInterval(timer[i]);
    }
    if (!e) e = window.event;
    if ((e.type) != 'mouseover') {
        z[i] = y;
        var t = dn;
    }
    else {
        z[i] = x;
        var t = up;
    }
        timer[i] = setInterval(function (i){return function(){ time(i)}}(this), t);
}

function time(i) {
    if (i.filters) {
        i.filters.alpha.opacity += z[i.id];
        var c = i.filters.alpha.opacity;
    }
    else {
        var c = i.style.opacity* 100 ;
        c += z[i.id];
        i.style.opacity = c/ 100 ;
    }
    if (c<=s){if(i.filters){i.filters.alpha.opacity=s}else{i.style.opacity=s/ 100 };clearInterval(timer[i.id]);return}
    if (c>=r){if(i.filters){i.filters.alpha.opacity=r}else{i.style.opacity=r/ 100 };clearInterval(timer[i.id]);return}
}
//-->
</script>
</head>
<body onload="ok()">
<img id="i1" src="" alt="" />
<img id="i2" src="" alt="" />
<img id="i3" src="" alt="" />
<img id="i4" src="" alt="" />
</body>
</html>
...
Рейтинг: 0 / 0
Как обратиться к элементу стр без ID?
    #35022313
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
armix2000 , вот тебе пример где объект this работает
Код: plaintext
<td class="menu-m-n" onmouseout='this.className="menu-m-n"' onmouseover='this.className="menu-m-h"'>Адреса
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Как обратиться к элементу стр без ID?
    #35022492
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
armix2000Вопрос, как можно обойтись без передачи ID, просто неохота для каждого элемента писать новый ID в вызове mouseOverPodMenuItemFunc и mouseOutPodMenuItemFunc?
<div class="submenuItem" id="podMenu1" onmouseover="mouseOverPodMenuItemFunc(this.id)" onmouseout="mouseOutPodMenuItemFunc(this.id)">
...
Рейтинг: 0 / 0
Как обратиться к элементу стр без ID?
    #35032458
armix2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile armix2000Вопрос, как можно обойтись без передачи ID, просто неохота для каждого элемента писать новый ID в вызове mouseOverPodMenuItemFunc и mouseOutPodMenuItemFunc?
<div class="submenuItem" id="podMenu1" onmouseover="mouseOverPodMenuItemFunc(this.id)" onmouseout="mouseOutPodMenuItemFunc(this.id)">

А вот за ентот ответ спасибо!
...
Рейтинг: 0 / 0
Как обратиться к элементу стр без ID?
    #35034062
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор<div class="submenuItem" id="podMenu1" onmouseover="mouseOverPodMenuItemFunc(this.id)" onmouseout="mouseOutPodMenuItemFunc(this.id)">
Ага. А потом в функциях mouseOverPodMenuItemFunc() и mouseOutPodMenuItemFunc() используете getElementById() .

Проще использовать <div class="submenuItem" id="podMenu1" onmouseover="mouseOverPodMenuItemFunc( this )" onmouseout="mouseOutPodMenuItemFunc( this )"> и сразу работать с элементом.
...
Рейтинг: 0 / 0
Как обратиться к элементу стр без ID?
    #35034300
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I_Work , так ему придется все алгоритмы переписывать! Ведь автору просто авторнеохота для каждого элемента писать новый ID
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как обратиться к элементу стр без ID?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]