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

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형
Insert and delete a radio button in an existing list



radio button을 삽입하거나 지우기 위해서 jQuery 의 standard method 를 사용합니다.


Insertion and removal of radio buttons


<!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 the number of rooms: </span>

    <div data-role=controlgroup>

      <label for=id1> 1 </label>

      <input type=radio id=id1 name=rooms />

      <label for=id2> 2 </label>

      <input type=radio id=id2 name=rooms />

      <label for=id3> 3 </label>

      <input type=radio id=id3 name=rooms />

      <label for=id4> 4 </label>

      <input type=radio id=id4 name=rooms />

      <label for=id5> 5 </label>

      <input type=radio id=id5 name=rooms />

    </div>

  </div>

</div>


</body>

</html>


<script>


var html = "";

html += "<label for=id0> Studio </label>";

html += "<input type=radio id=id0 name=rooms />";


$("input#id1").after (html);

$("input#id1, label[for=id1]").remove ();


</script>


tistory495_01.html






이 방법이 항상 통하는 건 아닙니다. 이 예제에서는 제대로 작동합니다. 왜냐하면 radio 버튼이 삽입되고 지워질때 jQuery Mobile 에 의해 HTML 이 변환되지 않아서 그렇습니다. 즉 그 때 JQM 에 의해서 HTML 이 변환되면 제대로 작동 안한다는 거죠. 그럴 땐 다른 방법을 사용해야 합니다.


Insertion and removal of radio buttons in a window already created


<!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 the number of rooms: </span>

    <div data-role=controlgroup>

      <label for=id1> 1 </label>

      <input type=radio id=id1 name=rooms />

      <label for=id2> 2 </label>

      <input type=radio id=id2 name=rooms />

      <label for=id3> 3 </label>

      <input type=radio id=id3 name=rooms />

      <label for=id4> 4 </label>

      <input type=radio id=id4 name=rooms />

      <label for=id5> 5 </label>

      <input type=radio id=id5 name=rooms />

    </div>

  </div>

</div>


</body>

</html>


<script>


$("#id1").bind ("checkboxradiocreate", function (event)

{

  var html = "";

  html += "<label for=id0> Studio </label>";

  html += "<input type=radio id=id0 name=rooms />";

  

  $(this).parent ("div.ui-radio").after (html);   // insertion

  $(this).parent ("div.ui-radio").remove ();      // suppression

  $("#id0").checkboxradio ();

  $("div:jqmData(role=controlgroup)").controlgroup ();

});


</script>


tistory495_02.html




첫번째 radio button 을 manipulate 하기 위해서 checkboxradiocreate event 에 의해 생성되는 과정을 기다려야 합니다. HTML 코드는 jQuery Mobile 에 의해 변환 됐습니다. 이 radio 버튼은 이제 ui-radio CSS class 가 있는 <div> element 로 그룹화 해야 합니다. radio button 을 삽입하려면 checkboxradio () method 를 사용해야 합니다. 그리고 그룹화를 위해서
<div> element에 controlgroup () method 를 사용하는 것도 필요하구요.


새로운 radio button 을 생성하기 위해 create event 를 사용할 수도 있습니다. 이것을 사용하고 난 다음엔 display 된 element들을 refresh 해야 됩니다.


Using standard methods on the components (first way)


$("#id0").checkboxradio ();
$("div:jqmData(role=controlgroup)").controlgroup ();



이전 예제에서 윗 부분을 주석 처리하고 아래 코드를 넣어보세요.


Use the create event on the window (2nd way)


$("#home").trigger ("create");



반응형