Jquery 是否可以将处理程序附加到slidedown事件?

Jquery 是否可以将处理程序附加到slidedown事件?,jquery,slidedown,Jquery,Slidedown,是否可以侦听特定元素上的slidedown事件 我希望这会很容易,因为: $("#element").slideDown(); $('#element').bind('slideDown', function() { alert('Slidedown event fired'); }); 找不到“slideDown”作为一个 监听这样的事件可能吗?在我的帮助下,我在函数调用中添加了一个触发器,您可以绑定到: $(function(){ ;(function($)

是否可以侦听特定元素上的slidedown事件

我希望这会很容易,因为:

 $("#element").slideDown();

 $('#element').bind('slideDown', function() {  
    alert('Slidedown event fired');  
 });
找不到“slideDown”作为一个

监听这样的事件可能吗?

在我的帮助下,我在函数调用中添加了一个触发器,您可以绑定到:

$(function(){
    ;(function($){
        var orig_slideDown = $.fn.slideDown;

        $.fn.slideDown = function(){
            $(this).trigger('slideDown');
            orig_slideDown.apply(this, arguments);
        };
    })(jQuery);

    $('.up').click(function(){
        $('div').slideUp();
    });
    $('.down').click(function(){
        $('div').slideDown();
    });
    $('div').bind('slideDown',function(){
        $('div').append($('<p>').text('Down Triggered'));
    });
});

<a href="#" class="up">Up</a> <a href="#" class="down">Down</a>
<div style="width:300px;height:200px;background-color:red;color:white;">
    <p>Hello, world!</p>
</div>
$(函数(){
;(函数($){
var orig_slideDown=$.fn.slideDown;
$.fn.slideDown=函数(){
$(this.trigger('slideDown');
orig_slideDown.apply(这个,参数);
};
})(jQuery);
$('.up')。单击(函数(){
$('div').slideUp();
});
$('.down')。单击(函数(){
$('div').slideDown();
});
$('div').bind('slideDown',function(){
$('div').append($('p>').text('Down Triggered'));
});
});
你好,世界


要做这类事情,我只需添加更多的语义方法。所以,如果你有一个菜单,当你向下滑动它时,你想触发一个事件,那么你可以做如下操作:

var menu = $('#menu');
menu.open = function() {
  menu.slideDown();
  menu.trigger('menuOpened');
};
然后只需调用
menu.open()
而不是
menu.slideDown()
。当您构建彼此交互的其他对象时,这种方法更具可读性和可维护性。然后,如果您选择稍后更改打开动画(例如,更改为fadeIn或其他内容),则无需更新与之交互的所有内容