ページの他の場所をクリックしてメニューを閉じた後、document.body
別のテンプレートに移動して同じ動作をトリガーした後、以前のイベントリスナーを「記憶」するコールバックからのコンソールログに気付きました。コールバックはdismissMenu
以下にあります。例えば...
初めて:
こんにちは
2回目:
やあやあ
等....
ここで何が間違っていますか?
ありがとう!
// named callback to dismiss menu so I can unbind later using $.off()
const dismissMenu = function() {
console.log('hello')
$('.js-dd').addClass('js-hidden')
Session.set('menuOpen', false)
$(document.body).off('click', dismissMenu)
}
Template.app_bar_expanded.onCreated(function() {
this.stackId = FlowRouter.getParam('_id')
// opening the menu will trigger the Session var to 'true'
Tracker.autorun(function() {
const menuIsOpen = Session.get('menuOpen')
if( menuIsOpen ) {
$(document.body).on('click', dismissMenu)
}
})
})
// Stem the event bleeding some...
// TODO get this .off() to actually work as you would expect.
Template.app_bar_expanded.onDestroyed(function(){
$(document.body).off('click', dismissMenu)
})