#1 17.10.10 02:37
[jquery] как повесить две обратные функции на click();
Код: javascript:
<script> $(document).ready(function(){ var btn = $('#btn'); btn.click(function() { if ( <btn имеет класс hide> ) { (this).removeClass(".hide").addClass(".unhide"); } else { (this).removeClass(".unhide").addClass(".hide"); } return false; }); }); </script> <div id="test"> <a href="#" class="hide">link</a> </div>
не догоняю как вообще сделать так что бы при нажатии на одну и ту же ссылку выполнялась сначала 1 функция потом 2я, потом снова первая.
уже всё перебрал, может кто подскажет?
Offline
#3 17.10.10 14:04
Re: [jquery] как повесить две обратные функции на click();
не работает с флагаме
наскуолько я понимаю дом читается один раз всего, дальше все замены надо осуществлять как то по другому...
Код: javascript:
$(document).ready(function(){ var btn = $('#btn'); flag =0; btn.click(function() { if (flag ==0){ alert('alert11111') ; $(this).parent().html('<a href="#" id="btn" class="unhide">link</a>'); flag = 1; alert(flag); return false; } else { alert('alert2222') ; $(this).parent().html('<a href="#" id="btn" class="hide">link</a>'); flag =0; return false; } }); });
Offline
#4 17.10.10 21:21
Re: [jquery] как повесить две обратные функции на click();
ну это канечно же неудачный подход использовать <a>, использовать чебокс нельзя? у него есть два противоположных состояние которые легко проверить. ну а так что то типа
Код: javascript:
$('#test a').toggle(function() { $(this).do_something(); }, function() { $(this).do_something_other(); });
Offline
#6 19.10.10 01:49
Re: [jquery] как повесить две обратные функции на click();
Непонятно в чем трудность. Вот без всяких флагов почти так же как у тебя.
Код: javascript:
$(document).ready(function() { var btn = $('#btn'); btn.click(function() { if ($(btn).hasClass('hide')) $(this).removeClass("hide").addClass("unhide"); else $(this).removeClass("unhide").addClass("hide"); return false; }); });
Offline
#10 20.10.10 17:08
Re: [jquery] как повесить две обратные функции на click();
Ещё есть метод .toggleClass('foo'), если тебе классы нужно менять
Исправлено Угрюмый кебаб (20.10.10 17:08)
Offline
#11 20.10.10 17:16
Re: [jquery] как повесить две обратные функции на click();
iDrum написал(а):
тут с евентами нада работать а не дом шерстить постояно
Джикуря, по-моему, при использовании метода .toggle сложит флажок в кастомный аттрибут тега и будет шерстить дом, что бы его достать, если что.
Offline
#12 20.10.10 17:23
Re: [jquery] как повесить две обратные функции на click();
два решения
Код: javascript:
$('#btn').one("click", a1); function a1(){ ///something code/// $('#btn').one("click", a2); } function a2(){ ///something code/// $('#btn').one("click", a1); }
Код: javascript:
$('#btn').toggle(function() { $(this).doSomething(); }, function() { $(this).doMore(); });
тема закрыта, всем спасибо
Offline

