отмена повторного выполнения события
допустим есть событие onscroll
нужно чтобы при первом вызове этого события что-либо выполнялось (примером alert('it work');) , но при повторном вызове этого события onscroll уже не работало и выполняло alert('it broke'). |
<!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> |
frant32,
window.onscroll = function() { alert('it work'); window.onscroll = function () { alert('it broke'); }; } |
Цитата:
|
спасибо за оба варианта )
|
а нельзя сдеалать какой-то счётчик?
чтобы допусти его обнулив после допустим 3го или 7го вызова (при коктрому выдаёт alert("second");) функция onElementClick работала по новому ? |
<!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> |
нет всё чёт не то не могу прикрутить к тому как надо, пойдём другим путём =)
<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,
<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> |
<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> но при скроле до упора вверх прозрачность исчезает ... |
Часовой пояс GMT +3, время: 08:39. |