2016-06-29 148 views
0

我是科爾多瓦的新手,現在我正在製作我的第一個CSS-HTML-JS應用程序以供學習。我的應用程序有兩個屏幕:在科爾多瓦第二次後退按下後退出應用程序

  • 人的主列表
  • 人的個人資料

當我打電話了Android回用按鈕:

document.addEventListener('backbutton',backMain,false); 

這個應用程序顯示的主列表。然後,我嘗試用此功能替換第一個呼叫,在主列表上按下後退。

function backClose (e) 
{ 
    e.preventDefault(); 

    navigator.notification.confirm(
     'Do you want to close the app?', 
     function(rsp) 
     { 
      if (rsp == 2) 
      { 
       navigator.app.exitApp(); 
      }else{ 
       return; 
      }; 
     }, 
     'Close', 
     'No,Close' 
    ); 
}; 

document.removeEventListener('backbutton',backMain,false); 
document.addEventListener('backbutton',backClose,false); 

在主列表中當我按下後退按鈕時要求我退出。這很好,但是當我在配置文件中按下它時,應用程序會轉到main,然後要求我退出。

如何設置應用程序返回到主列表時按下配置文件中的按鈕而不要求退出?

感謝您的任何幫助。

這裏爲這個應用程序,我完全的javascript代碼:

var app = (function() { 

    var _timerPage = 0; 
    var _page = {}; 
    var _backMain = function(){}; 

    function xLoadingIcon (sltr) 
    { 
     $(sltr).html('<div class="loading-icon"></div>'); 
    }; 

    function xPersonsList() 
    { 
     var buttons = $('#persons-list-switch'), list = $('#persons-list'); 

     buttons.find('[rolid]').off('click tap').on('click top',function() 
     { 
      loadRol($(this).attr('rolid')); 
     }); 

     loadRol(buttons.find('[rolid]:eq(0)').attr('rolid')); 
     document.removeEventListener('backbutton',_backMain,false); 
     document.addEventListener('backbutton',backClose,false); 

     function backClose (e) 
     { 
      e.preventDefault(); 

      navigator.notification.confirm(
       '¿Quieres cerrar la aplicación?', 
       function(rsp) 
       { 
        if (rsp == 2) 
        { 
         navigator.app.exitApp(); 
        }else{ 
         return; 
        }; 
       }, 
       'Salir', 
       'No,Cerrar' 
      ); 
     }; 

     function loadRol (rolid) 
     { 
      buttons.find('[rolid]').removeClass('active'); 
      buttons.find('[rolid="' + rolid + '"]').addClass('active'); 
      xLoadingIcon(list); 

      var rqs = { 
       exe: 'rol_list', 
       rolid: rolid 
      }; 

      utilities.formPost({ 
       request: rqs, 
       success: function(rsp) 
       { 
        console.dir(); 

        var htm = utilities.templateDOM({ 
         template_selector: '#template-persons-list', 
         data: rsp.data 
        }); 

        list.html(htm); 
       } 
      }); 
     }; 
    }; 

    function xPersonInfo (a) 
    { 
     var box = _page.profile, boxBio = box.find('#person-bio'), boxBack = box.find('#back-button'); 
     var username = a.getAttribute('username'); 

     xLoadingIcon(boxBio); 
     box.scrollTop(0); 

     clearTimeout(_timerPage); 
     _timerPage = setTimeout(function() 
     { 
      _page.persons.css('left','-100%'); 
      _page.profile.css('left','0%'); 
     },300); 

     var rqs = { 
      exe: 'person_info', 
      username: username 
     }; 

     utilities.formPost({ 
      request: rqs, 
      success: function(rsp) 
      { 
       var data = rsp.data; 
       data.photo = data.photo ? '<div class="photo"><img src="' + data.photo + '" alt=""></div>' : ''; 

       var htm = utilities.templateDOM({ 
        template_selector: '#template-person-bio', 
        data: data 
       }); 

       boxBio.html(htm); 
      } 
     }); 

     boxBack.off('click tap').on('click tap',_backMain); 
     document.addEventListener('backbutton',_backMain,false); 
    }; 

    function xIni() 
    { 
     document.addEventListener('deviceready',function() 
     { 
      _page.persons = $('#page-persons'); 
      _page.profile = $('#page-profile'); 

      _backMain = function(e) 
      { 
       e.preventDefault(); 
       _page.persons.css('left','0%'); 
       _page.profile.css('left','100%'); 
      }; 

      StatusBar.backgroundColorByHexString("#1F303F"); 
      $('#page-profile').bind('swipeleft swiperight',_backMain); 
      xPersonsList(); 
     },false); 
    }; 

    return { 

     ini: xIni, 

     personInfo: xPersonInfo 

    }; 
})(); 

回答

0

我想你忘記了你添加_backMain後刪除你的第二個聽衆。

document.addEventListener('backbutton',_backMain,false); 
document.removeEventListener('backbutton',backClose,false); 
相關問題