2012-03-30 18 views
3

In jQuery, verberge ich meine Elemente mit .hide();.jQuery onhide Event-Handler

Gibt es einen evert-Handler, der ausgelöst wird, wenn ich etwas verberge? Sie sehen, ich habe eine Reihe von Elementen in meinem Code, und ich verstecke sie oder zeige sie (mit jQuery) ein paar Mal. Um die Dinge auf effiziente Weise in Schach zu halten, würde ich gerne einen Event-Handler für

verwenden Könnte jemand mich in die richtige Richtung dafür zeigen?

Vielen Dank!

+1

Sie können einen Rückruf für hide() bereitstellen, wenn Sie möchten, aber ich glaube nicht, dass Sie das suchen. Kannst du mir bitte erklären, was du erreichen willst? – Niyaz

+0

Es gibt kein Onhide-Ereignis, es ist eine benutzerdefinierte Methode von jQuery, die mithilfe von Animationen einen "Versteck" -Effekt auf das Element erzeugt. – mowwwalker

Antwort

4

Sie können eine Callback-Funktion verwenden

$('#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

Ist nicht $ ('# element'). Verstecken ('langsam', myCallback) 'viel einfacher? – Niyaz

+0

Ich denke schon, +1 dafür. –

+0

Super, danke! –

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

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

Sie können ein benutzerdefiniertes Ereignis erstellen und auslösen, wenn Sie die Haut Methode aufrufen ..

+1

Sieht so aus, als könnte das funktionieren. Hast du es getestet? – Niyaz

+1

Ich habe jetzt: http://jsfiddle.net/kennis/BNQVT/ –

1

Sie verstecken sich in jquery Versand außer Kraft setzen können ein Ereignis nach dem Aufruf der ursprünglichen Funktion.