2012-03-30 78 views
3

在jQuery中,我使用.hide();隐藏了我的元素。jQuery onhide事件处理程序

当我藏起东西时,是否有一个外壳处理程序被解雇?你看,我的代码中有一堆元素,我隐藏了它们或者使用jQuery显示它们很多次。为了保持事情的有效性,我很乐意使用事件处理程序.hide()

有人能为我指出正确的方向吗?

非常感谢!

+1

如果需要,您可以提供hide()的回调函数,但我不认为这是您正在寻找的。你能解释你想达到的目标吗? – Niyaz 2012-03-30 01:19:11

+0

没有'onhide'事件,它是jQuery的自定义方法,它使用动画在元素上创建“隐藏”效果。 – mowwwalker 2012-03-30 01:24:48

回答

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 2012-03-30 01:28:38

+0

我认为是这样,+1。 – 2012-03-30 01:29:26

+0

太棒了,谢谢! – 2012-03-30 17:25:13

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

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

您可以创建自定义事件,并触发它,只要你调用隐藏方法..

+1

看起来像这样可以工作。你测试过了吗? – Niyaz 2012-03-30 01:25:11

+1

我现在有:http://jsfiddle.net/kennis/BNQVT/ – 2012-03-30 02:08:58

1

可以在jQuery的覆盖隐藏到调度调用原始函数后的事件。