StormBreaker
Registered
Има ли начин с jquery или стандартен JS да задам на една функция да се изпълни задължително след всички други хендлъри за дадено събитие :idea:
Follow along with the video below to see how to install our site as a web app on your home screen.
Бележка: This feature may not be available in some browsers.
<script>
var firstFunc = false;
var secondFunc = false;
function func1(){
...
if(success или нещо от сорта){
firstFunc = true; //при положителен изход, придаваме true на променливата firstFunc
}
}
function func2(){
...
if(success или нещо от сорта){
secondFunc = true; //при положителен изход, придаваме true на променливата secondFunc
}
}
function lastFunc(){
if( firstFunc && secondFunc ) //тук проверяваш дали първата и втората функция са върнали true
alert('Success!');
else
alert('DAMN!');
}
</script>
:?Проблема е, че нямам никакъв начин да разбера кои са тези другите функции.
аа, извинявай, не бях обърнал внимание на това...StormBreaker каза::?Проблема е, че нямам никакъв начин да разбера кои са тези другите функции.
F1r3Fl3x каза:аа, извинявай, не бях обърнал внимание на това...StormBreaker каза::?Проблема е, че нямам никакъв начин да разбера кои са тези другите функции.
Поне знаеш ли колко на брой функции се изпълнявата преди тази контролната ?
I_V_O каза:Трябва да си сигурен, че я добавяш последна като handler за това събитие. Или може да ползваш една друга техника нарича се подскачане на събитетията. Например ако натиснеш с мишката върху <a> таг, който е child на <div> таг първо ще се изпълни събитие click за линка, после за div-a, после за неговия parent и така до body. Номера тука е, че имаш едно свойство на event обекта (аргумента, кйто приема handler-а), което съдържа елемента активирал подскачането тоест ако натиснеш <a> във всеки един от event handler-ите на неговите "родители" това свойство съдържа елемента <a>, а тези handler-и винаги ще се изпълнят след всички handler-и на <a>. Ако ползваш jQuery това свойство е event.target:
var elm = $( "#asdf" )[0];
$( elm.parentNode ).click(function(e){
if( e.target == elm ){
// do your stuff
}
});
$(elm).click(function(e){ /*1*/})
.click(function(e){/*2*/})
.click(function(e){/*3*/});