отмена повторного выполнения события
допустим есть событие 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, время: 16:05. |