2017-08-01 153 views
1

我工作的一个PhoneGap的(版本6+)的混合应用。最近,我注意到,在按下Android手机硬件后退按钮时,PhoneGap的"backbutton"事件不会在以下circusmstances触发:Android手机硬件后退按钮不点火“后退按钮”事件,有时

  1. 输入或textarea元素是重点和软键盘达: 在这种情况下,硬件后退按钮关闭软键盘,但无论是元素失去重点也不是"backbutton"触发的事件
  2. 选择元件开放,在这种情况下,硬件后退按钮使得选择元件关闭,但"backbutton"事件没有被触发,select元素没有被触发igger一个blurfocusout事件

在谷歌上搜索,我可以看到,这似乎是一个已知的问题,但是,我的问题是:有一个地方我可以听窗口resize事件第一种情况的解决方法。但对于第二种情况,即select元素关闭,我不确定如何捕获该事件? blurfocusout不起作用。有没有解决方法吗?

感谢您的任何帮助。

+0

你想达到什么样的? – Akis

+0

@Akis我希望在选择元素失去专注 – DevD

回答

1

如果你想解决类似的问题的解决方案,那么你可以设置功能来检查,如果点击选择框是打开或关闭,然后,如果它的开放虚假变量设置为true,然后关闭假像下面。

//set variable global 
var clickedDropdown; 

$("select").bind("click", function() { 
    var clickedDropdown = $(this); 

    if (clickedDropdown.data('open') == false) { 
     clickedDropdown.data('open', true); 
     console.log(this.name + " open"); 
     //Your code goes here 
    } else { 
     clickedDropdown.data('open', false); 
     console.log(this.name + " closed"); 
     //Your code goes here 
    } 
}); 

更新

$(document).ready(function(){ 
    setTimeout(function(){ 
     document.addEventListener('backbutton', function(e){ 
      if (clickedDropdown.data('open') == true) { 
       $("select").trigger("click"); 
       //or 
       //You can set blur or focusout event if dropdown already open 
      } else { 
       //You can set another function for backbutton pressed event 
      } 
     }); 
    },500); 
}); 
+0

由于显示元素,但是这不是我的情况下工作,因为选择元素与JQM模拟原生的Android。因此,选择元素选项只需点击即可打开,但可通过手机后退关闭。所以我猜想点击事件不会在按下后退按钮时被触发。 – DevD

+0

请检查我的更新答案,它可能会帮助你。 –

+0

再次感谢,我会试一试并回复你。 – DevD