Показать сообщение отдельно
  #1 (permalink)  
Старый 24.03.2013, 12:16
Интересующийся
Отправить личное сообщение для qwertyuiopoiuytrewq Посмотреть профиль Найти все сообщения от qwertyuiopoiuytrewq
 
Регистрация: 05.01.2013
Сообщений: 21

Аргументы в Set Interval
Замысел, чтобы происходило вот что:
<!DOCTYPE HTML>
<html>
  
  <head></head>
  
  <body>
    <div id='g' style='background:rgb(100,0,0);width:100px; height:100px; position:absolute; top:0px;left:100px;'
    onMouseOver='app()' onMouseOut='disapp()'></div>
    <script>
      var d, c, h = 100,
        el = document.getElementById('g');

      function a() {
        if (h <= 250) {
          h += 5;
          el.style.background = 'rgb(' + h + ',0,0)';
        } else {
          clearInterval(d);
        }
      }

      function b() {
        if (h >= 100) {
          h -= 5;
          el.style.background = 'rgb(' + h + ',0,0)';
        } else {
          clearInterval(c);
        }
      }

      function app() {
        clearInterval(c);
        d = setInterval(a, 10);
      }

      function disapp() {
        clearInterval(d);
        c = setInterval(b, 10);
      }
    </script>
  </body>

</html>

только с несколькими объектами сразу. Проблема в том, что setInterval не может воззвать к функции с аргументом:
<!DOCTYPE HTML>
<html>
  
  <head></head>
  
  <body>
    <div id='g' style='background:rgb(100,100,100);width:100px; height:100px; position:absolute; top:0px;left:100px;'
    onMouseOver='disapp(1)' onMouseOut='app(1)'></div>
    <div id='g' style='background:rgb(100,100,100);width:100px; height:100px; position:absolute; top:100px;left:100px;'
    onMouseOver='disapp(1)' onMouseOut='app(1)'></div>
    <script>
      var d, c, visited = false,
        h = 100;

      alert('a');

      function a(z) {
        alert(z);
        if (h <= 250) {
          h += 5;
          el.style.background = 'rgb(' + h + ',0,0)';
        } else {
          clearInterval(d);
        }
      }

      function b(z) {
        alert(z);
        if (h >= 100) {
          h -= 5;
          el.style.background = 'rgb(' + h + ',0,0)';
        } else {
          clearInterval(c);
        }
      }

      function app(x) {
        clearInterval(c);
        d = setInterval(a(x), 10);
      }

      function disapp(x) {
        clearInterval(d);
        c = setInterval(b(x), 10);
      }
    </script>
  </body>

</html>

Подскажите, что мне делать что бы можно было такое осуществить (не только с RGB/RGBA, это просто пример).
Заранее благодарен
Ответить с цитированием