사용자:Hsl0/LinkTools
< 사용자:Hsl0
LinkModifier
- 태그 안의 링크를 수정한다.
- 안쪽이 먼저 실행되고 바깥쪽이 나중에 실행된다.
<span class="link-modifier" data-modifier"a">
<span class="event-listener" data-modifier="b">
[[리버티게임:대문]]
</span>
</span>
b 실행-a 실행
LinkCreater
- link-slot-dummy: 태그 안에 아무런 링크가 없다면, 아무 기능이 없는 링크(<a>)를 생성한다. EventTools와 함께 쓰면 좋다.
- link-slot-dummy: 태그 안에 아무런 링크가 없다면, 현재 페이지를 가리키는 링크(<a>)를 생성한다. LinkModifier와 함께 쓰면 좋다.
EventTools
- 이벤트를 비동기적으로 만든다.
- 이벤트 handler/listener의 기본값을 재정의한다. 이벤트 handler/listener의 기본값은 안쪽에서 정의된 이벤트이다. (listener는 기존 listener/handler를 오버라이딩하지 않는다.)
- listener는 (상대적) 기본값을 오버라이딩하지 않고, handler는 오버라이딩한다.
- 바깥쪽이 먼저 실행되고 안쪽이 나중에 실행된다.
<span class="event-listener" data-target="link" data-listen-click="a">
<span class="event-listener" data-target="link" data-listen-click="b">
[[리버티게임:대문]]
</span>
</span>
a 실행-b 실행-리버티게임:대문으로 이동 a에서는 기본 동작이 b 실행-리버티게임:대문으로 이동이다.
<span class="event-handler" data-target="link" data-handle-click='["a"]'>
<span class="event-handler" data-target="link" data-handle-click='["b"]'>
[[리버티게임:대문]]
</span>
</span>
a 실행 a에서는 기본 동작이 b 실행-리버티게임:대문으로 이동이다. handler는 기본 동작을 실행시키지 않는다.
data-listen-(이벤트명)="(플래그) (동작)" data-handle-(이벤트명)="(플래그) (동작)"
- 이벤트 handler/listener는 기본적으로 동시에 실행되지만 다음 플래그는 이를 변경시킬 수 있다.
- once는 처음 이벤트가 발생할 때 한번만 실행되고 그 이후 이벤트는 실행하지 않는다.
- defer는 먼저 실행되는 listener/handler가 모두 작업을 완료했을 때 실행한다.
- await는 다음에 실행되는 listener/handler가 이번 이벤트의 작업이 모두 완료될 때까지 기다린 후 실행되게 한다.
이전 / 이번 | defer | await | defer await | |
---|---|---|---|---|
즉시 | 대기 | 즉시 | 대기 | |
defer | 즉시 | 대기 | 즉시 | 대기 |
await | 대기 | 대기 | 대기 | 대기 |
defer await | 대기 | 대기 | 대기 | 대기 |
a defer b c defer d e await f g await defer h i
이벤트 동작은 첫번째 요소가 동작 이름이고 나머지가 해당 동작의 인자인 JSON 배열으로, 다음과 같다.
["a", "b", 1, true, null, ["c"], {}]
이 때 a 동작이 실행되고 ["b", 1, true, null, ["c"], {}]
가 인자로 제공된다.