jQuery show()上的调用函数

时间:2014-05-15 01:48:28

标签: javascript jquery

我试图在显示div时调用一个函数。基于http://viralpatel.net/blogs/jquery-trigger-custom-event-show-hide-element/处的代码,它主要起作用。我遇到的问题是,即使显示我的主div中的某些内容,我的show()函数也会被调用。我将事件附加到主div,所以期待它只会在显示主div时触发。但即使显示main_div中的子元素,偶数也会触发。我该如何防止这种情况?

以下是代码的内容:

(function ($) {
    $.each(['show', 'hide'], function (i, ev) {
        var el = $.fn[ev];
        $.fn[ev] = function () {
            this.trigger(ev);
            return el.apply(this, arguments);
        };
    });
})(jQuery);

// I only want this to be called when main_div is shown, not sub_div
$('#main_div').on('show', function () {
    $('#console').html($('#console').html() + this.id + ' is visible' + '<br>');
});

// I only want this to be called when main_div is hidden, not sub_div
$('#main_div').on('hide', function () {
    $('#console').html($('#console').html() + this.id + ' is hidden' + '<br>');
});

这是一个演示问题的小提琴: http://jsfiddle.net/jon_harris7/975wJ/42/

0 个答案:

没有答案