Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.10.2012, 20:35
Аспирант
Отправить личное сообщение для frant32 Посмотреть профиль Найти все сообщения от frant32
 
Регистрация: 03.02.2012
Сообщений: 67

отмена повторного выполнения события
допустим есть событие onscroll

нужно чтобы при первом вызове этого события что-либо выполнялось (примером alert('it work') , но при повторном вызове этого события onscroll уже не работало и выполняло alert('it broke').
Ответить с цитированием
  #2 (permalink)  
Старый 04.10.2012, 21:01
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    <a href="#">click me </a>
    
    <script>

var elem = document.body.children[0];
      
      elem.onclick = onElementClick;
      
    var first_call = false;
      
      function onElementClick () {
      
      
        if(!first_call){
        
          first();
          
         first_call = true;
          
          return;
        } 
      
      
      alert("second");
        
      return false;
      }
      
      
      
      function first() {
      
      alert("first");
      
      }
      
      
      


    </script>

  </body>
</html>
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #3 (permalink)  
Старый 04.10.2012, 21:04
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

frant32,
window.onscroll = function() { alert('it work'); window.onscroll = function () { alert('it broke'); }; }
Ответить с цитированием
  #4 (permalink)  
Старый 04.10.2012, 21:16
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от lord2kim Посмотреть сообщение
frant32,
window.onscroll = function() { alert('it work'); window.onscroll = function () { alert('it broke'); }; }
только такой вариант не будет работать если добавлять через addEventListener
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #5 (permalink)  
Старый 04.10.2012, 21:28
Аспирант
Отправить личное сообщение для frant32 Посмотреть профиль Найти все сообщения от frant32
 
Регистрация: 03.02.2012
Сообщений: 67

спасибо за оба варианта )
Ответить с цитированием
  #6 (permalink)  
Старый 04.10.2012, 21:37
Аспирант
Отправить личное сообщение для frant32 Посмотреть профиль Найти все сообщения от frant32
 
Регистрация: 03.02.2012
Сообщений: 67

а нельзя сдеалать какой-то счётчик?
чтобы допусти его обнулив после допустим 3го или 7го вызова (при коктрому выдаёт alert("second") функция onElementClick работала по новому ?
Ответить с цитированием
  #7 (permalink)  
Старый 04.10.2012, 21:54
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    <a href="#">click me </a>
    
    <script>

var elem = document.body.children[0];
      
      elem.onclick = onElementClick;
      
    var i = 0;
      
      function onElementClick () {
      
      
        if(i <= 3 ){
        
          first();
          
         i++;
          
          return;
        } 
      
      
      alert("все!");
        
      return false;
      }
      
      
      
      function first() {
      
      alert(i+1);
      
      }
      
      
      


    </script>

  </body>
</html>
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #8 (permalink)  
Старый 05.10.2012, 03:20
Аспирант
Отправить личное сообщение для frant32 Посмотреть профиль Найти все сообщения от frant32
 
Регистрация: 03.02.2012
Сообщений: 67

нет всё чёт не то не могу прикрутить к тому как надо, пойдём другим путём =)
<html>
<body>
<style>
body {height:1000px;}
</style>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script>
var doc = $(document);
doc.scroll(function(){
    if(doc.scrollTop() >= 1 ){
	alert('sss');
    }
});

</script>
</body>
</html>


воот , суть в том что мне нужно что-бы после первого срабатывания окошко вылазило лиш рас , тоесть после последующего скрола ничего не присходило..
а то получается так : я загрузил страницу --> проскролюю --> вылазит окошко -->незакрыв окошко дальше скорлю --> закрываю окошко --> и вылазит куча окошек....

или же прокрутив колесиком (быстро) полоборота вылазит куча этих окошек )))

вот как блин с этим боротся....

Последний раз редактировалось frant32, 05.10.2012 в 03:34.
Ответить с цитированием
  #9 (permalink)  
Старый 05.10.2012, 08:35
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

frant32,
<html>
<body>
<style>
body {height:1000px;}
</style>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script>
var doc = $(document), i = 0;
doc.scroll(function(){
    if(i>0){ return; }
    if(doc.scrollTop() == 1){
    alert('sss'); i++;
    }
});
</script>
</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 05.10.2012, 14:18
Аспирант
Отправить личное сообщение для frant32 Посмотреть профиль Найти все сообщения от frant32
 
Регистрация: 03.02.2012
Сообщений: 67

<html>
<body>
<style>
body {height:1000px;}
div { width:100px; height:50px; background:#000; position:fixed;}
</style>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>

<div id = "id1"> dfdf </div>

<script>
var doc = $(document);
var i = 0;
doc.scroll(function(){
  
  if(i>0){ 
     return 
  }
  
  if(doc.scrollTop() != 0){
	 i++;
	 $('#id1').css('opacity','0.5');
  }
});


</script>
</body>
</html>


но при скроле до упора вверх прозрачность исчезает ...
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отмена действия события во время выполнения анимации gunsoy Общие вопросы Javascript 2 12.06.2012 13:27
jQuery. Запрет выполнения события если другое уже выполняется. Kostyk92 Элементы интерфейса 4 09.03.2012 23:46
Передача параметров в колбэки и дальнейшее их вешанье на события. Gremlin Общие вопросы Javascript 17 13.08.2011 08:54
Запрет события при выполнения другова Suharik Events/DOM/Window 3 07.05.2010 16:29
Отмена события preventDefault() , поясните пожалуйста namez jQuery 3 15.04.2010 14:54