Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用dojo connect启动特定事件侦听器以外的函数_Dojo_Event Listener - Fatal编程技术网

使用dojo connect启动特定事件侦听器以外的函数

使用dojo connect启动特定事件侦听器以外的函数,dojo,event-listener,Dojo,Event Listener,我有一个函数可以旋转幻灯片放映,如startChangeImage(),当幻灯片放映上有鼠标时,我的幻灯片放映必须停止 我试着做这样的事情 dojo.connect(this.domNode,'onmouseover',this,this.stopChangeImage); this.start = dojo.connect(this.domNode,'onmouseout',this,this.startChangeImage); ..... sto

我有一个函数可以旋转幻灯片放映,如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); } ........ connect(this.domNode,'onmouseover',this,this.stopChangeImage); this.start=dojo.connect(this.domNode,'onmouseout',this,this.startChangeImage); ..... stopChangeImage:函数(){ dojo.disconnect(this.start); } ........
问题是,它只有在鼠标移出后才开始旋转。我希望它在除鼠标外的所有时间都能工作。

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

使用带有上下文()的
dojo.connect()
时,也不需要
this.
。请参见下面代码示例中的连接函数

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();
});

上述代码将在页面加载时缓慢启动幻灯片,但会根据mouseover和mouseout停止和启动幻灯片。

您可以删除“this.start=”我保留了它,因为它在原始示例中,并提供了指向要与dojo.disconnect()一起使用的事件的链接。