// 제목 관련내용은 =========== 표시 밑부터 입니다.
안드로이드 폰에서 문제없이 작동하던 기능 해보고 다했다 짝짝짝 하고 끝냈는데
아이폰에서 동작이 안된다고 뭐라고 한소리 들었다*(테스트용 아이폰을 주던가ㅡㅡ..)
보통 이런식으로 펑션을 쓸텐데
$('select').change(function () {
alert('you changed this');
});
이런식 혹은 Uncaught TypeError: $(...).live is not a function
$('select').live('change',function () {
alert('you changed this');
});
이런식으로 사용하면 된다고 한다.
$('select').bind('change',function () {
alert('you changed this');
});
이런식으로...... 해봤는데 안된다
jQuery Mobile로 만들어진 특수성이 문제라는 자료를 찾음.
사이드 메뉴를 두 번, 세 번, 네 번도 불러온다는 것.
id는 페이지에서 하나로 유일해야하는데
특수성으로 인해 2개도 되고 3개 4개로 중복된다는 라는 것이었다.
1. jQuery로 선택된 값 읽기
$("#selectBox option:selected").val();
$("select[name=name]").val();
2. jQuery로 선택된 내용 읽기
$("#selectBox option:selected").text();
======================================================
=================여기까지 이것저것 해봤는데 ..==================
======================================================
결국 change 펑션 문제가 아니라 정규식 문제였다.
아이폰 스크립트 로그 보는 방법을 몰라서 원시적으로 한줄 한줄 지우면서 노가다로 알아냈다 ㅠ
문제가 있던 정규식은 1,000,000 이런식으로 3자리마다 콤마를 찍어주는 돈표시 정규식 이다.
// 안되는 코드
var moneycom =/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g;
element.replace(moneycom, ",")
위 정규식에서의 ?<! 와 같은 표기법은 최신 기법으로, 익스 ~11, ios, safari 에서 통하지 않는 스크립트이다.
때문에 위처럼 넣게되면 함수 자체가 에러를 뱉어내므로, 스크립트를 호출하지 못하는 에러가 발생한다.
(object Error / function undefined)
(참고 url : caniuse.com/?search=lookbehind)
//되는 코드
var moneycom =/\B(?=(\d{3})+(?!\d))/g;
element.replace(moneycom, ",")
위와같이 정규식을 기술해야 익스, ios, safari 에서 정상적으로 함수를 호출할 수 있게 된다.
.
.
.
브라우저에 다른 기종의 OS나 HTML 렌더링 기술로 비슷하게 만들어 어떤 환경에서도 이상없이 작동되게 하는 것을
Cross Browsing (크로스 브라우징) 이라고 한다는데 외워두고 나중에 찾아봐야겠다.
'꿀팁 활용' 카테고리의 다른 글
[IntelliJ] VCS(Git) 사용 시 느림, 멈춤 현상 조치 방법 (0) | 2022.02.08 |
---|---|
KT GIGA공유기 포트포워딩 하기 (0) | 2021.11.30 |
pdf (0) | 2021.08.12 |
JAVASCRIPT X분X초 타이머 (0) | 2021.05.26 |
전화번호 입력시 자동 대시(하이픈, "-") 삽입하는 자바스크립트 (2) | 2021.05.26 |