爲什麼我必須創建一個整體close prototype只是爲了讓我的事件從我的視野中解除?不應該骨幹只是建立在?有沒有辦法檢測視圖何時被刪除?主幹事件發射兩次
在我離開並回到視圖後,我的骨幹事件激發了兩次。
events : {
"click #userDropdownButton > a" : "toggleUserDropdownMenu",
"click" : "hideUserDropdownMenuIfClickedOutside"
},
el : "body",
initialize : function() {
this.render();
},
// Shows/hides the user dropdown menu
toggleUserDropdownMenu : function() {
if(!this.$el.find('#userDropdownButton > ul').is(':visible')) {
this.showUserDropdownMenu();
} else {
this.hideUserDropdownMenu();
}
return false;
},
showUserDropdownMenu : function() {
this.$el.find('#userDropdownButton').addClass('hover');
this.$el.find('#userDropdownButton > ul').show();
this.$el.find('#userDropdownButton > a .arrow-down').removeClass('arrow-down').addClass('arrow-up');
},
hideUserDropdownMenuIfClickedOutside : function() {
if(this.$el.find('#userDropdownButton > ul').is(':visible')) {
this.hideUserDropdownMenu();
}
},
hideUserDropdownMenu : function() {
this.$el.find('#userDropdownButton').removeClass('hover');
this.$el.find('#userDropdownButton > ul').hide();
this.$el.find('#userDropdownButton > a .arrow-up').removeClass('arrow-up').addClass('arrow-down');
},
第一次視圖顯示,下拉地打開和關閉,但在視圖渲染的第二次,下拉解釋每一個在打開時單擊兩次,從而爲不久,第二次點擊關閉它。
如果我們知道你在做什麼,那麼我們可能會告訴你你做錯了什麼。也許如果有一些代碼要看... –
@ muistooshort添加了代碼:)感謝您的反饋 – Garrett
我會稱這是http://stackoverflow.com/q/10966440/479863的副本,或者至少答案几乎相同。 –