2012-03-30 3 views
3

В jQuery я скрываю свои элементы, используя .hide();.jQuery onhide обработчик события

Есть ли обработчик evert, который уволен, когда я что-то скрываю? Понимаете, у меня есть куча элементов в моем коде, и я прячу их или показывая им (используя jQuery) кучу раз. Чтобы держать вещи под контролем, эффективным способом я бы с удовольствием использовал обработчик событий для .hide()

Может ли кто-нибудь указать мне в правильном направлении?

Большое спасибо!

+1

Вы можете предоставить обратный вызов для hide(), если хотите, но я не думаю, что это то, что вы ищете. Не могли бы вы объяснить, чего вы пытаетесь достичь? – Niyaz

+0

Нет события 'onhide', его пользовательский метод из jQuery, который использует анимации для создания« скрывающего »эффекта для элемента. – mowwwalker

ответ

4

Вы можете использовать функцию обратного вызова

$('#element').hide('slow', hideCallback); 

$('#element').show('slow', showCallback); 

function hideCallback() 
{ 
    // You can do your stuff here 
} 

function showCallback() 
{ 
    // You can do your stuff here 
} 
+2

Не '$ ('# element'). Hide ('slow', myCallback)' намного проще? – Niyaz

+0

Я так думаю, +1 для этого. –

+0

Удивительный, спасибо! –

2
$('p').on('ohWowIGotHidden', function(){ 
    document.write('O look, it works'); 
}); 

$('p').hide(function(){ 
    $(this).trigger('ohWowIGotHidden'); 
}); 

Вы можете создать пользовательское событие и вызвать его всякий раз, когда вы вызываете метод скрыть ..

+1

Похоже, это может сработать. Вы проверили это? – Niyaz

+1

У меня есть сейчас: http://jsfiddle.net/kennis/BNQVT/ –

1

Вы можете переопределить шкурку в JQuery для отправки событие после вызова исходной функции.