반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형

스마트폰이 나오고 모바일 앱을 개발 할 일이 많아지고 그래서 HTML 5 나 CSS3 같은 기술을 사용할 기회가 많아지고 있습니다.

자바스크립트도 그렇지만 이 HTML5 나 CSS3 도 기능에 따라 지원하는 브라우저도 있고 또 그렇지 않은 브라우저도 있습니다.


요즘 저는 회사 내부 모바일 앱쪽으로 주로 일을 하고 있는데요.

회사 구성원이 쓰는 디바이스가 대부분 블랙베리 입니다.


그러다 보니까 기능을 지원하는 디바이스도 있고 또 그렇지 않은 디바이스도 있고 그러네요.


정말 웹 개발하기가 엄청 복잡해 졌습니다.


요즘 테스트 작업 하다가 찾은 싸이트 인데요.

이 기능이 왜 이 디바이스나 브라우저에서 제대로 작동하지 않는지 설명할 때 유용하더라구요.


싸이트 주소는 http://caniuse.com/ 입니다.


가 보면 CSS, HTML5, SVG, Java Script 의 기능별로 지원되는 브라우저 및 디바이스가 잘 정리 돼 있습니다.





개발하시거나 테스트 하실 때 활용하세요.

반응형

Ajax 로 selection list 삽입하기

2012. 11. 12. 22:30 | Posted by 솔웅


반응형
Insert a selection list by Ajax



selection list를 Ajax 를 통해 받아서 이것을 window에 insert 하겠습니다.


Retrieve a selection list by Ajax


<!DOCTYPE html>

<html> 

<head> 

  <meta name=viewport content="user-scalable=no,width=device-width" />

  <link rel=stylesheet href=jquery.mobile/jquery.mobile.css />

  <script src=jquery.js></script>

  <script src=jquery.mobile/jquery.mobile.js></script>

</head> 


<body> 


<div data-role=page id=home>

  <div data-role=header>

    <h1>Home</h1>

  </div>


  <div data-role=content>

    <span> Choose an apartment type: </span>

  </div>

</div>


</body>

</html>


<script>


$.ajax (

  url : "action.php", 

  complete : function (xhr, result)

  {

    if (result != "success") return;

    var response = xhr.responseText;

    $("#home div:jqmData(role=content)").append (response);

    $("select").selectmenu ();

  }

});   


</script>



<select> element. 에 있는 selectmenu () method의 사용법을 잘 보세요. 이 메소드가 오리지널 HTML code를 jQuery Mobile 스럽게 display 하는 HTML 로 변환시키는 일을 합니다. 그리고 버튼을 클릭하면 selection list 가 열릴 겁니다.


action.php file


<?
$html = "";
$html .= "<select data-native-menu=false data-icon=plus data-iconpos=left>";
$html .=   "<option value=1> 1 bedroom </option>";
$html .=   "<option value=2> 2 bedrooms </option>";
$html .=   "<option value=3> 3 bedrooms </option>";
$html .=   "<option value=4> 4 bedrooms </option>";
$html .=   "<option value=5> 5 bedrooms </option>";
$html .= "</select>";
echo utf8_encode ($html);
?>





selectmenu () method를 call 하는 것을 빼면 jQuery Mobile 에 의한 변환은 일어나지 않을 겁니다. 그러면 classic style의 selection list 가 나타나겠죠.




action10.php


tistory463_01.html



반응형


반응형
Turning an HTML element into a jQuery Mobile selection list

다음의 두가지 경우를 생각해 봅시다.

  •  먼저 native display 의 selection list 를 사용하는 경우. 이 경우는 <select> element에 있는 data-native-menu attribute 가 "false" 가 아닙니다.

  •   그 다음 경우는 display 가 non-native를 사용하는 경우. 예를 들어 jQuery Mobile에 의해 좀 더 improve 된 selection list를 display 하는 경우. 이 경우는 data-native-menu attribute 를 "false"로 세팅합니다.


Using the native display selection lists


이전의 예제를 사용하겠습니다.  <select> element description 안에 data-native-menu="false" attribute를 넣습니다.


<select> element without the data attribute-native-menu="false"


<script>

var html = "";

html += "<select>";

html +=   "<option value=1> 1 bedroom </option>";

html +=   "<option value=2> 2 bedrooms </option>";

html +=   "<option value=3> 3 bedrooms </option>";

html +=   "<option value=4> 4 bedrooms </option>";

html +=   "<option value=5> 5 bedrooms </option>";

html += "</select>";


$("#home div:jqmData(role=content)").append (html);


</script>




Firebug로 jQuery Mobile에 의해 만들어진 HTML 은 아래와 같습니다.




original <select> element가 두개의 <div> elements 안에 둘러 쌓여져 있습니다. 하나는 ui-select CSS class 이고 다른 하나는 ui-btn class 입니다. 그것들은 selection list를 open 할 수 있는 window의 버튼으로 표시됩니다. 위의 ui-btn-inner CSS class 가 있는 <span> element는 버튼에 display 된 list안에 선택된 아이템과 연관돼 있습니다.


Using the improved display selection lists


이제 <select> element description에 data-native-menu="false" attribute를 넣어 보겠습니다.


<select> element with the data-native-menu="false" attribute


<script>

var html = "";

html += "<select data-native-menu=false>";

html +=   "<option value=1> 1 bedroom </option>";

html +=   "<option value=2> 2 bedrooms </option>";

html +=   "<option value=3> 3 bedrooms </option>";

html +=   "<option value=4> 4 bedrooms </option>";

html +=   "<option value=5> 5 bedrooms </option>";

html += "</select>";


$("#home div:jqmData(role=content)").append (html);


</script>


tistory462_01.html




 

다음을 제외하고는 위의 예제와 같습니다.


  • ui-btn class 가 있는 <div>는 이제 <a> element 입니다. 그리고 ui-btn class를 가지고 있습니다. 이것은 selection list 를 open 하기 위한 버튼이 됩니다.
  •  ui-selectmenuui-selectmenu-hidden CSS classes 가 있는 <div> element가 다른 element들 다음에 insert 됐습니다. 여기에는 여러 <li> elements를 가지고 있는 <ul> element가 포함돼 있습니다. 이 <div> element는 버튼을 누르면 나올 리스트입니다. 이제 native display 보다 더 style 된 나아진 display 를 보시게 될 겁니다.


ui-selectmenu-hidden class는 리스트가 현재 display 되지 않는 것을 가리킵니다. (이 리스트는 버튼이 클릭 됐을 때 보여질 겁니다.) 이것을 하기 위해 이 클래스는 element 의 topleft CSS properties 를 -9999px로 정의했습니다. 이것은 화면 밖 어딘가에 있을 겁니다. 버튼을 클릭하면 jQuery Mobile 은 이 CSS class를 없앱니다. 그리고 element 이 topleft를 window안에 그 list를 display 합니다.

반응형