从对象#1之外的函数调用属于对象#1的方法?

时间:2010-11-04 06:32:17

标签: javascript html

(function($){
    $.fn.kwicks = function(options) {
        var defaults = {
            isVertical: false,
            sticky: false,
            defaultKwick: 0,
            event: 'mouseover',
            spacing: 0,
            duration: 500,
        };
        var o = $.extend(defaults, options);
        var WoH = (o.isVertical ? 'height' : 'width'); // WoH = Width or Height
        var LoT = (o.isVertical ? 'top' : 'left'); // LoT = Left or Top

        return this.each(function() {
            var container = $(this);

    ...

    yadda yadda yadda

    ...

                container.bind("mouseleave", function() {

                ...

                });
            });
        };
    })(jQuery);

我想在onload上调用这个“mouseleave”方法。我怎么能做到这一点?

如果我无法完成它,因为它是一种私有方法,我该如何公开呢?

提前致谢。是的,我不打算写一本关于如何在javascript中编写代码的书......哈哈。

1 个答案:

答案 0 :(得分:1)

container是您正在调用.kwicks()的任何内容,因此相同的元素只会触发mouseleave事件,例如:

$(".whateverContainerIs").mouseleave();
//or
$(".whateverContainerIs").trigger("mouseleave");
//or
$(".whateverContainerIs").triggerHandler("mouseleave");

.mouseleave().trigger("mouseleave")的快捷方式,然后.triggerHandler("mouseleave")只运行您的处理程序,但事件不会冒泡......如果这很重要(在大多数情况下它不会不,除非父母有mouseleave处理程序,否则你不想解雇。