<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to UIContentToggler</title><link>https://sourceforge.net/p/xe-core/wiki/UIContentToggler/</link><description>Recent changes to UIContentToggler</description><atom:link href="https://sourceforge.net/p/xe-core/wiki/UIContentToggler/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 25 Mar 2015 11:09:18 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/xe-core/wiki/UIContentToggler/feed" rel="self" type="application/rss+xml"/><item><title>UIContentToggler modified by Anonymous</title><link>https://sourceforge.net/p/xe-core/wiki/UIContentToggler/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="content-toggler"&gt;Content Toggler&lt;/h1&gt;
&lt;p&gt;메뉴 등과 같이 사용자의 액션에 따라 콘텐츠를 토글할 때 사용한다. 토글 콘텐츠는 크게 두 개의 요소로 이루어지는데, 하나는 앵커 요소로 이 요소를 클릭하면 콘텐츠를 보이거나 숨기며 다른 하나는 콘텐츠를 포함하는 콘텐츠 요소입니다. &lt;/p&gt;
&lt;h2 id="basics"&gt;Basics&lt;/h2&gt;
&lt;p&gt;ContentToggler에 사용할 앵커 요소는 클래스 속성에 &lt;code&gt;tgAnchor&lt;/code&gt;라는 클래스 이름을 &lt;strong&gt;반드시&lt;/strong&gt; 포함해야 하며, 콘텐츠 블럭은 클래스 속성에 &lt;code&gt;tgContent&lt;/code&gt;라는 클래스 이름을 &lt;strong&gt;반드시&lt;/strong&gt; 포함해야 한다. 앵커 요소는 클릭 이벤트를 받아서 콘텐츠를 보이거나 감추는 기능을 하며, 콘텐츠를 보이거나 감출 때 사용할 효과에 대한 정보를 포함하기도 한다. 예를 들어, 보이거나 숨길 콘텐츠의 아이디는 href 속성을 통해 다음과 같이 정의할 수 있다. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#content"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"tgAnchor"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;보이기/숨기기&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"tgContent"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;보이거나 숨길 콘텐츠&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;위 코드는 앵커 요소 &lt;code&gt;href&lt;/code&gt; 속성의 값으로 &lt;code&gt;#content&lt;/code&gt;를 사용하고, 콘텐츠 영역의 아이디로 &lt;code&gt;content&lt;/code&gt;를 사용하여 두 개의 요소를 서로 연결했다. 앵커 요소가 콘텐츠 영역을 가리켜야 한다는 점을 명심하셔야 한다. 또한 &lt;code&gt;data-effect&lt;/code&gt; 속성을 통해 사용할 효과의 종류를, &lt;code&gt;data-duration&lt;/code&gt; 속성을 통해 효과가 진행될 시간을 정의할 수 있다. 다음 코드는 콘텐츠를 펼쳐지거나 접을 때 슬라이딩 효과를 사용하는 예제입니다. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#content"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"tgAnchor"&lt;/span&gt; &lt;span class="na"&gt;data-effect=&lt;/span&gt;&lt;span class="s"&gt;"slide"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;보이기/숨기기&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"tgContent"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;보이거나 숨길 콘텐츠&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;앵커 요소에 사용할 수 있는 옵션 속성은 다음과 같습니다. 접두어 &lt;code&gt;data-&lt;/code&gt;는 생략했다. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;effect&lt;/code&gt;&lt;/strong&gt; : 접거나 펼칠 때 사용할 효과. &lt;code&gt;slide&lt;/code&gt;, &lt;code&gt;fade&lt;/code&gt;, &lt;code&gt;none&lt;/code&gt; 중 선택. 기본값은 &lt;code&gt;none&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/strong&gt; : 효과를 실행할 시간. &lt;code&gt;fast&lt;/code&gt;, &lt;code&gt;slow&lt;/code&gt; 또는 밀리초 단위의 시간 숫자 &lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="events"&gt;Events&lt;/h2&gt;
&lt;p&gt;프로그램에서 사용자 액션을 통하지 않고 토글 콘텐츠를 펼치거나 접으려면 jQuery 함수를 사용해 앵커 요소를 선택한 후 사용자 정의 이벤트 &lt;code&gt;open.tc&lt;/code&gt; 또는 &lt;code&gt;close.tc&lt;/code&gt;를 실행한다. jQuery를 사용하면 다음과 같이 실행할 수 있다. 콘텐츠를 펼칠 때는 &lt;code&gt;'open.tc'&lt;/code&gt;를 접을 때는 &lt;code&gt;'close.tc'&lt;/code&gt;를 사용한다. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#content"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"tgAnchor"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;보이기/숨기기&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;script&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text/javascript"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
jQuery('a.tgAnchor').trigger('open.tc'); // 콘텐츠 펼치기
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;만약 콘텐츠를 펼치기 전/후 또는 접기 전/후에 어떤 코드를 실행하고 싶다면 앞서 말한 이벤트에 &lt;code&gt;after-&lt;/code&gt; 또는 &lt;code&gt;before-&lt;/code&gt;를 추가하여 이벤트 핸들러를 할당한다. 예를 들어, &lt;strong&gt;콘텐츠를 펼치기 전&lt;/strong&gt;에 실행하고 싶은 코드는 다음과 같이 할당할 수 있다. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nx"&gt;jQuery&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'a.tgAnchor'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bind&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'before-open.tc'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
        &lt;span class="c1"&gt;// 콘텐츠를 펼치기 직전에 실행할 코드&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;마찬가지로 닫은 직후에 실행할 함수는 다음과 같이 할당할 수 있다. &lt;code&gt;after-&lt;/code&gt;로 할당한 이벤트 핸들러는 애니메이션이 모두 끝난 후에 실행된다는 점에 주의해야 한다. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nx"&gt;jQuery&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'a.tgAnchor'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bind&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'after-close.tc'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
        &lt;span class="c1"&gt;// 콘텐츠를 접은 직후 실행할 코드&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="jquery-plugin"&gt;jQuery Plugin&lt;/h2&gt;
&lt;p&gt;이 패턴은 페이지를 읽어들일 때 자동으로 실행되기 때문에 페이지 요소를 동적으로 생성하는 경우에는 적용되지 않는 문제가 있다. 다음과 같이 &lt;code&gt;tgAnchor&lt;/code&gt; 요소를 선택한 후 &lt;code&gt;xeContentToggler&lt;/code&gt; 메소드를 실행하면 페이지를 읽어들인 뒤에도 스크립트를 적용할 수 있다. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tgAnchor&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;xeContentToggler&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anonymous</dc:creator><pubDate>Wed, 25 Mar 2015 11:09:18 -0000</pubDate><guid>https://sourceforge.net645c55bb8e8bdaa365647ae5a4d3c2441b8730aa</guid></item></channel></rss>