1

我想在对元素执行 slideUp 或 slideDown 时调用函数。这可能吗?

就像是:

$('#panel').on('slideUp', function() { open--; });
$('#panel').on('slideDown', function() { open++; });

更新:问题是整个页面、ajax 响应、哈希链接点击等都有大量的幻灯片调用(例如:$().slideUp())。我希望以某种方式绑定到幻灯片本身而不是向每个调用函数添加代码。

4

2 回答 2

1

你不能绑定到一个事件,因为没有这样的。

但是您可以传递一个将在动画完成后调用的处理程序

$('#panel').slideUp(function() { ... });

http://api.jquery.com/slideUp/

于 2013-05-07T01:10:50.697 回答
1

如果你真的想这样做,你可以使用自定义事件和你自己的小插件,像这样:

$.fn.mySlideToggle = function() {
  this.slideToggle();
  this.trigger('mySlideToggle');
}

$('div').on('mySlideToggle', function(){ console.log('hey') });
$('button').on('click', function(){ $('div').mySlideToggle(); });

这是一个小演示(检查控制台):http: //jsbin.com/asejif/2/edit

在您的情况下,它是多余的,因为您可以使用幻灯片事件提供的回调,但它可能对其他事情有用......

于 2013-05-07T01:16:30.860 回答