Официальный сайт студ.городка НГТУ
Программирование и БД » [jquery] как повесить две обратные функции на click(); 

#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

#2  17.10.10 09:13

Re: [jquery] как повесить две обратные функции на click();

могу подсказать альтернативный вариант, сделать какую-либо переменную-флаг, и в зависимости от ее значения выполнять первую или 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

#5  17.10.10 21:30

Re: [jquery] как повесить две обратные функции на click();

kish написал(а):

this.removeClass(".hide").addClass(".unhide");
this.removeClass("hide").addClass("unhide");

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

#7  19.10.10 09:26

Re: [jquery] как повесить две обратные функции на click();

тут с евентами нада работать а не дом шерстить постояно

Offline

#8  19.10.10 11:00

Re: [jquery] как повесить две обратные функции на click();

iDrum, непонятно. Поясни)

Offline

#9  19.10.10 12:25

Re: [jquery] как повесить две обратные функции на click();

ну есть же функция toggle() как раз для кликов, зачем теребить ставя и убирая класс. хоть и дом кешируется канешно всё равно не кашерно

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

Программирование и БД » [jquery] как повесить две обратные функции на click(); 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.075 сек.
Выполнено 14 запросов.