hifive / hifivemain

main repository
http://www.htmlhifive.com/
Other
40 stars 10 forks source link

コントローラのoff()で、h5trackmove,h5trackendにバインドしたイベントハンドラをアンバインドできない #454

Closed fukudayasuo closed 8 years ago

fukudayasuo commented 9 years ago

以下のようにh5trackイベントをバインドしているコントローラで、h5trackmove, h5trackendにバインドされているハンドラをoff()でアンバインドできない。

以下、検証コード

var c = h5.core.controller('body', {
    __name: 'A',
    __ready: function() {
        this.on('{rootElement}', 'h5trackstart', this._trackstart);
        this.on('{rootElement}', 'h5trackmove', this._trackmove);
        this.on('{rootElement}', 'h5trackend', this._trackend);
    },
    _trackstart: function() {
        console.log('trackstart');
    },
    _trackmove: function() {
        console.log('trackmove');
    },
    _trackend: function() {
        console.log('trackend');
    }
});

のようなコントローラがあるとき、

c.off('{rootElement}', 'h5trackmove', c._trackmove);
c.off('{rootElement}', 'h5trackend', c._trackend);

としても、イベントハンドラはトラック時に実行されてしまう。h5trackstartはアンバインドできる。