2015-04-20 50 views
2

我正在使用Phongap和科爾多瓦的移動應用程序。使用OnsenUI。jQuery顯示/隱藏不適用於Android

在一個頁面中,我有一個ons-switch元素,用於顯示和隱藏選擇的html元素。

這個特殊的事情是,當觸摸ons-switch時顯示和隱藏選擇的js代碼在iOS(在iPhone 5S上測試)和Android模擬器上正常工作,但是當我將應用程序部署到我的三星Galaxy S4(Android 4.3)的腳本不起作用,它不會隱藏/顯示選擇。

代碼不工作的Android版本是4.3。 phonegap版本是4.2.0-0.25.0。 科爾多瓦版本是4.3.0。

這裏是我的代碼:

<ons-page> 

     <ons-toolbar> 
      <div class="left"><ons-back-button>Back</ons-back-button></div> 
      <div class="center">MyPage</div> 
     </ons-toolbar> 

     <div style="text-align:center"> 
      <div style="margin-top:5%;width:100%;"> 
       <input class="text-input" id="my-input"> 
      </div> 

      <div style="width:100%;float:left;clear:both"> 
       <label>Show Select 1</label> 
       <ons-switch var="switch1" onchange="ShowSelect1()"></ons-switch> 
       <select id="select1"></select> 
      </div> 

      <div> 
        <label>Show Select 2</label> 
        <ons-switch var="switch2" onchange="showSelect2()"></ons-switch> 
        <select id="select2"></select> 
      </div> 
</div> 
    </ons-page> 

我的JS代碼:

function ShowSelect1() { 
      var item = $("#select1"); 
      if (switch1.isChecked()) { 
       item.show(); 
      } else { 
       item.hide(); 
      } 
     } 

     function ShowSelect2() { 
      var item = $("#select2"); 
      if (switch2.isChecked()) { 
       item.show(); 
      } else { 
       item.hide(); 
      } 
     } 

回答

2

不要使用jQuery隱藏和顯示這樣的事情,使用角是溫泉的基礎上的。使用ng-show或ng-hide,並將其作爲範圍值。你沒有足夠的展示你的代碼正確顯示你的修復,但類似:

<ons-switch var="switch2" ng=change="select2Hiding = !select2Hiding"></ons-switch> 
<select id="select2" ng-hide="select2Hiding"></select> 
在HTML

,並刪除JS代碼...

2

jQuery的通過角使用被重寫一個jQuery for Angular的目的版本。 $.hide()$.show()均被ng-showng-hide覆蓋。

使用這些,一切都會正常工作。