JQuery .val () 함수의 JavaScript. Value가 잘못된 값을 반환하지만 모바일 장치에서만
-
13-12-2019 - |
문제
나는이 문제에 대해 내 머리카락을 찢어 버리고 있습니다.다음과 같이 보이는 JavaScript 코드가 있습니다.
<script type=text/javascript>
function readVals(){
val1 = $('#select1').val()
val2 = $('#select2').val()
val3 = etc.
}
</script>
<select id='select1'>
<option value='val1'>val1</option>
<option value='val2'>val2</option>
</select>
<select id='select2'>
<option...
.
데스크탑에서 실행될 때 Firefox, Chrome, Safari 및 Mac, Ubuntu 및 Windows에서 실행할 때 Readvals 메소드가 잘 작동합니다.그러나 모바일 브라우저에 관계없이 Android 및 iPhone에서 $ ( '-select2'). val () 항상 0을 반환합니다.
다음과 같은 다른 테스트 기능을 구성하는 바이 기이는 무엇입니까?function getVal2(){
alert($('#select2').val())
}
.
getVal2()
는 Page의 readVals()
에서 <head>
앞에 선언되며 모바일 장치에서도 올바른 값을 경고합니다.그래서 나는 getVal2()
를 실행하고 올바른 값을 볼 수 있습니다.그런 다음 즉시 readVals()
를 실행하고 잘못된 값을 가져 오지만 val2
및 모바일 장치에서만 모바일 브라우저에서만 사용할 수 있습니다.
아이디어가 있습니까?
해결책
OMG, 방금 문제가 무엇인지 깨달았습니다.var
를 로컬로 만들 수있는 즉시 :
var val2 = ...
.
문제는 사라졌지만이 문제가 모바일 장치에만 있었는지 나에게 일어났습니다. 나는 질문을하기 위해 코드를 단순화하고 단축했지만 변수의 실제 이름은 orientation
였습니다.장치가 어떻게 회전하는지 설명하기 위해 모바일 장치에서 사용됩니다.이는 모바일 장치에서 들어오는 값이 0 및 90 (각도 에서처럼) 이유를 설명합니다.어리석은 바보 같다.잘 알아내는 데는 3 일이 걸렸습니다.시간을 낭비해서 죄송합니다.다음에 실제 코드를 게시 할 것입니다.
다른 팁
페이지가 렌더링 된 후에 만 PageNit 이벤트를 사용하여 기능을 호출 해보셨습니까?
$(document).live( 'pageinit',function(event){
readVals()
});
.