Как сохранить ссылку на DOM element?
Собственно, предположим, у меня div без id.
Я хочу, допустим, чтобы при клике он плавно становился прозрачным. Но как передать функции элемент? |
Просто передавайте в функцию.
function myFunc(object){ alert(object.innerHTML) } var myDiv = document.createElement("div"); myDiv.appendChild(document.createTextNode("test")); myFunc(myDiv) Или вы говорите про this ?<div onclick="alert(this.innerHTML)">test</div> |
|
Просто диву пропиши:
<div onClick="changeOpacity(this)"/> а в функции changeOpacity работаете с пришедшим аргументом как со ссылкой на div: function changeOpacity(obj) { obj.style.opacity = '0.5'; //Это например, ибо opacity - очень некросброузерная штука } |
Ммм... Постараюсь объяснить понятнее)
1. Подразумевается, что функция обработчик должна допустим: а. читать текущее value параметра б. изменять его в соответствии с алговритмом и value параметра 2. Что она через setInterval будет вызываться, пока value не достигнет опр. значения(opacity: 1 например) 3. при загрузке страницы, запускается js, который вешает скажем, на все теги samp функции обработчики, c единственным параметром(this) Наподобие fadein/fadeout в Jquery. В принципе я знаю несколько вариантов реализации, но по производительности они больно не очень:D Читал статью про Closures, подумал нельзя ли применить... |
Цитата:
function callLater(paramA, paramB, paramC){ /* Return a reference to an anonymous inner function created with a function expression:- */ return (function(){ /* This inner function is to be executed with - setTimeout - and when it is executed it can read, and act upon, the parameters passed to the outer function:- */ paramA[paramB] = paramC; }); } ... /* Call the function that will return a reference to the inner function object created in its execution context. Passing the parameters that the inner function will use when it is eventually executed as arguments to the outer function. The returned reference to the inner function object is assigned to a local variable:- */ var functRef = callLater(elStyle, "display", "none"); /* Call the setTimeout function, passing the reference to the inner function assigned to the - functRef - variable as the first argument:- */ hideMenu=setTimeout(functRef, 500); тут надо создавать глобальную переменную, а заранее с this не прокатит... |
Всё! Попыжился, попыжился и сделал.
Всё прекрасно. 2 функции, 3 тоесть если модифаер учитывать и некаких обходов DOM в цикле))) Если кому интересно могу выложить. |
Цитата:
Эх, никакого уважения к потомкам... |
Часовой пояс GMT +3, время: 12:40. |