используйте dojo connect для запуска функции, отличной от конкретного слушателя - PullRequest
0 голосов
/ 09 марта 2011

У меня есть функция, которая вращает слайд-шоу, например 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 Ответ

2 голосов
/ 10 марта 2011

Это происходит потому, что вы подключаете событие onmouseout к startChangeImage(). Если вы хотите, чтобы это слайд-шоу начиналось при загрузке страницы, у вас может быть функция init() (или аналогичная), которая вызывается при загрузке страницы, чтобы медленно начать слайд.

Вам также не нужен this. при использовании 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();
});

Приведенный выше код замедлит ваш слайд при загрузке страницы, но остановит его и запустит на основе наведения мыши и наведения мыши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...