如何使用Clippy.js隐藏单击而不是超时的元素?

时间:2015-06-12 04:27:19

标签: javascript jquery

我找到了一个名为Clippy.js的简洁小JS库,它允许您在浏览器中实现Microsoft Word的旧虚拟助手。在玩了一段时间之后,我意识到文本气球有一个setTimeout()方法和一个时间延迟导致它消失。

    hide:function (fast) {
        if (fast) {
            this._balloon.hide();
            return;
        }

        this._hiding = window.setTimeout($.proxy(this._finishHideBalloon, this), this.CLOSE_BALLOON_DELAY);
    },

    _finishHideBalloon:function () {
        if (this._active) return;
        this._balloon.hide();
        this._hidden = true;
        this._hiding = null;
    },

我不想要那个。我希望当用户点击时气球消失。我尝试通过将this._hiding = ...替换为:

来注册事件监听器
var clickToHide = document.getElementsByClassName('clippy-balloon');
this._hiding = clickToHide.addEventListener('click', function(){$.proxy(this._finishHideBalloon, this)});

......但它所做的就是完全隐藏气球。为什么这不起作用?我如何实现我想要的功能?

1 个答案:

答案 0 :(得分:1)

我认为延迟是由变量CLOSE_BALLOON_DELAY引起的。 将this.CLOSE_BALLOON_DELAY更改为0应该可以解决问题。