2013-06-18 1 views
0

동적으로 controlgroup에서 요소를 추가하거나 제거하는 동안 항상 문제가 발생했습니다. 고맙게도, JQM 1.3은 그러한 예를 제공합니다.컨트롤 그룹에 동적으로 요소 추가하기 jQuery mobile 1.3

링크 : http://www.uglymongrel.com/jqm/touch/demos/examples/controlgroups/dynamic-controlgroup.php

그러나 예제 코드는 매우 혼란이다. 누구든지 container() 방법이 작동하는 방법과 buttonMarkup() 방법을 설명 할 수 있습니까?

$("#my-controlgroup").controlgroup("container")[ $(this).attr("id") ]($el); 

답변

2

당신은 아마 HTML 당신이 jQuery를 모바일에 대한 쓰기 사실이 아닌 최종 결과와 동일에 있음을 알고있다. jQuery Mobile이 페이지를 빌드하면 콘텐츠가 최종적으로 변경됩니다.

무엇이 무엇인지 이해하는 것이 중요합니다. container element입니다. 이 메소드가 실행되면 :

$("#my-controlgroup").controlgroup("container")[ $(this).attr("id") ]($el); 

방법은 controlgroup#my-controlgroup 내용을 채 웁니다. 그냥 $('#my-controlgroup')에 액세스 DOM 내용을주지 않을 것입니다.

이 제품 :

[ $(this).attr("id") ] 

controlgroups의 배열 controlgroup 제 n을 나타내도록 여기에있다.

자세한 내용은 공식 문서 HERE에서 확인할 수 있습니다. 두 번째 문제에 대해서는

,이 방법은 :

buttonMarkup() 

jQuery Mobile 버튼 모양을 변경하기 위해 사용된다.

$("a").buttonMarkup({ corners: false }); 

또는 버튼 아이콘 변경 : 예를 들어이 버튼 모서리 모양이 변경됩니다 이것은 HERE찾을 수 있습니다

$("a").buttonMarkup({ icon: "star" }); 

.

+0

컨테이너가 필요한 이유를 아직도 이해할 수 없습니까? 이 줄은 "제어 그룹의 배열에서 n 번째 제어 그룹을 나타낼 때만 있습니다."라는 혼란을 낳고 있습니다. 여기에는 하나의 제어 그룹 만 있습니다. – dejavu

+0

주의 깊게 보면 링크의 예에서 3 개의 제어 그룹이 표시됩니다. 컨테이너는 controllgroup 내용을 포함하는 DIV입니다. – Gajotres

+0

세 개의 컨트롤 그룹이 있지만 컨텐트가 "my-controlgroup"에서만 추가되는데, 왜 그렇게해야할까요? 또한 코드가 다소 혼란 스럽습니다. 요소를 추가하지 않고 추가하는 방법은 무엇입니까? 비슷한 코드를 시도했는데 작동하지 않습니다. http://jsfiddle.net/KH6KA/ – dejavu

2
$("#my-controlgroup").controlgroup("container")[ $(this).attr(
"id") ]($el); 

이 $ 엘이 notning 그러나 당신이 그룹에 추가하거나 앞에 추가 할 새로운 요소입니다

$("#my-controlgroup").controlgroup("container").append($el); 
OR 
$("#my-controlgroup").controlgroup("container").prepend($el); 

로 변환합니다.이 데모 코드의 혼란스러운 부분은 클릭 된 요소의 ID 속성에 메서드 이름 (추가, 앞에 붙이기)을 유지 했으므로 클릭 한 요소를 기반으로 작업을 동적으로 식별 할 수있는 방법입니다.

관련 문제