是否可以将处理程序绑定到jQuery效果?

时间:2013-05-07 01:08:26

标签: javascript jquery-ui jquery

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

类似的东西:

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

更新:问题是在整个页面,ajax响应,哈希链接点击等内有大量的幻灯片调用(例如:$(。。slideUp())。我希望绑定到以某种方式滑动自己而不是为每个调用函数添加代码。

2 个答案:

答案 0 :(得分:1)

您无法绑定到某个事件,因为没有这样的事件。

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

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

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

答案 1 :(得分: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

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

相关问题