html - Tumblr theme getting tags of a post in JavaScript -
i want use tags of post in javascript. tags using following:
<article class="post" data-tags="{tagsasclasses}">
this worked fine until needed use special characters |
becomes _
property , gives me wrong tag.
so need (using {block:tags}
):
<article class="post" data-tags="{block:hastags}{block:tags}{tag}{/block:tags}{/block:hastags}">
yet foresee problems if {tag}
ever has double quote in it.
is there way can keep data-tags attribute , still use {block:tags}
real tag?
i have come solution involves adding , reading bunch of markup don't much.
<div class="posthiddentags" style="display:none;"> {block:hastags} {block:tags}<div data-tag={jstag} data-tagurl={jstagurl}></div>{/block:tags} {/block:hastags} </div>
if need tags in javascript, can define them in <script>
tag start. in theme html:
<script> var tags = {}; {block:posts} {block:hastags} tags[{jspostid}] = [ {block:tags} { "tag": {jstag}, "tagurl": {jstagurl}, }, {/block:tags} ]; {/block:hastags} {/block:posts} </script>
you have global javascript dictionary, post's id list of tags (and tag urls). "js" prefix output string wrapped in quotes.
in each of post elements, add attribute post id:
{block:posts} <article data-id="{postid}" class="post"></article> {/block:posts}
you can have {block:posts}
multiple times in template, although the theme documentation not mention this.
whenever need post's tags, post id dom element, id in tag dictionary. way don't have worry escaping/un-escaping special characters.
Comments
Post a Comment