私はいつもタイムイベントを扱うのに苦労していました。Aが機能せず、Bが機能する理由を誰かに説明してもらえますか?唯一の違いは、AIがイベントバインディングを関数に配置することです。関数closeについて心配する必要はありません。質問とは何の関係もありません。Aをテストすると、jsエラーは発生しませんが、タイマーはクリアされません。
A->
Test.Navigation = (function() {
var openTimer = null;
var closeTimer = null;
var addListeners = function() {
$('.hover_container').on('mousemove', function(e) {
clearTimeout(closeTimer);
});
$('.hover_container').on('mouseleave', function(e) {
// set the close timer
var container = this;
closeTimer = setTimeout(function() {
//has the mouse paused
close(container);
}, 750);
});
};
return {
init : function() {
addListeners();
}
};
})();
B->
Test.Navigation = (function() {
var openTimer = null;
var closeTimer = null;
$('.hover_container').on('mousemove', function(e) {
clearTimeout(closeTimer);
});
$('.hover_container').on('mouseleave', function(e) {
// set the close timer
var container = this;
closeTimer = setTimeout(function() {
//has the mouse paused
close(container);
}, 750);
});
var addListeners = function() {
// nothing here
};
return {
init : function() {
addListeners();
}
};
})();
編集:コンテナの部分は無視してください。それは、私が取り出さなかった完全なコードの一部にすぎないという質問には何の意味もありません。