使用dojo connect来触发特定事件侦听器以外的函数

时间:2011-03-09 09:07:17

标签: dojo event-listener

我有一个旋转幻灯片放映的功能,如startChangeImage(),当幻灯片显示鼠标悬停时,我的幻灯片必须停止。

我试试这样的事情

   dojo.connect(this.domNode,'onmouseover',this,this.stopChangeImage);
                    this.start = dojo.connect(this.domNode,'onmouseout',this,this.startChangeImage);

.....

stopChangeImage:function () {
            dojo.disconnect(this.start);

        }


........

事情是它只在鼠标移出后开始旋转我希望它一直工作,除了鼠标悬停。

1 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为您要将onmouseout事件与startChangeImage()相关联。如果您希望在页面加载时启动此幻灯片放映,则可以使用init()(或类似)函数在页面加载时调用以启动幻灯片放缓。

this.与上下文(see here)一起使用时,您也不需要dojo.connect()。请参阅下面的代码示例中的连接函数。

var pageClass = {

    stopChangeImage: function() { },

    startChangeImage: function() { },

    init: function() {

        this.startChangeImage();

        dojo.connect(this.domNode, 'onmouseover', this, 'stopChangeImage');
        this.start = dojo.connect(this.domNode, 'onmouseout', this, 'startChangeImage');
    }

};

dojo.addOnLoad(function() {

    pageClass.init();
});

上面的代码会在页面加载时开始你的幻灯片放慢,但是它会根据鼠标悬停和鼠标移动来停止和启动。