<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kevinleary.net</title>
    <description>The latest articles on DEV Community by Kevinleary.net (@kevinlearynet).</description>
    <link>https://dev.to/kevinlearynet</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2554896%2F6d620ee4-f85c-4eae-a1c6-bb12edb965e0.png</url>
      <title>DEV Community: Kevinleary.net</title>
      <link>https://dev.to/kevinlearynet</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kevinlearynet"/>
    <language>en</language>
    <item>
      <title>Move JavaScript to the Page Bottom in WordPress</title>
      <dc:creator>Kevinleary.net</dc:creator>
      <pubDate>Tue, 03 Nov 2026 17:15:09 +0000</pubDate>
      <link>https://dev.to/kevinlearynet/move-javascript-to-the-page-bottom-in-wordpress-4fk1</link>
      <guid>https://dev.to/kevinlearynet/move-javascript-to-the-page-bottom-in-wordpress-4fk1</guid>
      <description>&lt;p&gt;&lt;a href="https://www.amazon.com/High-Performance-Web-Sites-Essential/dp/0596529309" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwsrv.nl%3Furl%3Dkevinleary.net%2Fwp-content%2Fuploads%2F2011%2F03%2Fhigh-performance-web-sites-book-front-cover.gif%26w%3D940%26q%3D80%26output%3Dwebp%26maxage%3D356d%26dpr%3D2" alt="High Performance Web Sites Book Front Cover" width="1880" height="2465"&gt;&lt;/a&gt;Steve Sonders outlines essential rules for speeding up websites on the front-end in his book &lt;a href="https://www.amazon.com/High-Performance-Web-Sites-Essential/dp/0596529309" rel="noopener noreferrer"&gt;High Performance Web Sites&lt;/a&gt;. He strongly advocates for developers to load JavaScript at the bottom of a page. When a website is loaded in a browser using HTTP, scripts don’t allow parallel downloads. This means that it may take 4 seconds to load a single JS file. Instead it’s best to load your CSS and images first, to avoid a flickr of un-styled content.&lt;/p&gt;

&lt;h2&gt;
  
  
  Move All WordPress JavaScript to the Footer
&lt;/h2&gt;

&lt;p&gt;It’s easy to do this in WordPress, just add the following to your theme’s &lt;code&gt;functions.php&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cd"&gt;/**
 * Load Enqueued Scripts in the Footer
 *
 * Automatically move JavaScript code to page footer, speeding up page loading time.
 */&lt;/span&gt;
&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;footer_enqueue_scripts&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nf"&gt;remove_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'wp_head'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'wp_print_scripts'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;remove_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'wp_head'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'wp_print_head_scripts'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;remove_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'wp_head'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'wp_enqueue_scripts'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;add_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'wp_footer'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'wp_print_scripts'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;add_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'wp_footer'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'wp_enqueue_scripts'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;add_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'wp_footer'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'wp_print_head_scripts'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nf"&gt;add_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'after_setup_theme'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'footer_enqueue_scripts'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I highly recommend Steve’s book. Its straight forward recipe approach is very easy to digest, making it a quick and informative read.&lt;/p&gt;

</description>
      <category>websitespeedoptimization</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>Search Field Focus &amp; Blur Effects with jQuery</title>
      <dc:creator>Kevinleary.net</dc:creator>
      <pubDate>Tue, 03 Nov 2026 17:14:27 +0000</pubDate>
      <link>https://dev.to/kevinlearynet/search-field-focus-blur-effects-with-jquery-33n8</link>
      <guid>https://dev.to/kevinlearynet/search-field-focus-blur-effects-with-jquery-33n8</guid>
      <description>&lt;p&gt;There is a newer version of this post available called &lt;a href="https://www.kevinleary.net/form-input-field-focus-blur-effects/" rel="noopener noreferrer"&gt;Form input field focus &amp;amp; blur effects&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is something I come across a lot at work so I thought I would turn it into a simple tutorial for reference to anyone out there that needs it. Basically what we want to create is this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  A search field that will display a value such as “Enter your search terms here.”&lt;/li&gt;
&lt;li&gt;  When a user clicks into that field the value will disappear, allowing the user to enter there search terms.&lt;/li&gt;
&lt;li&gt;  If a user clicks out of that search field without entering anything, the default value will return to the field.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a simple little JavaScript task, and with the help of the jQuery library, it’s even simpler and completely unobtrusive. Because sometimes you just want a bear bones version to work with, I’ll keep the styles to a minimum on this one. Here’s how we go about doing it.&lt;/p&gt;

&lt;h3&gt;
  
  
  First we need to start with a basic form structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"search-form"&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"search-input"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Click here to search&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"search-input"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"search-input"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Go"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"clearboth"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For semantic purposes, and for all those without JavaScript enabled, I’ve added the label attribute in there. What we’re going to do is pull the text from the label and then hide it. After that we’ll put that text into the input’s value attribute. This way if a user has JavaScript turned off they will simply see a label and a search input.&lt;/p&gt;

&lt;h3&gt;
  
  
  jQuery Magic
&lt;/h3&gt;

&lt;p&gt;Next we need to add some of that jQuery magic to spice things up. For those of you who are here simple to grab some code and get to work, I’ll post the JavaScript up front and explain step by step afterwards. Here goes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;ready&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;// Get the text from the label element&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;labelTxt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#search-form label&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;text&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="c1"&gt;// Put the text from the label element into the search field's value&lt;/span&gt;
  &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#search-input&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;value&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;labelTxt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="c1"&gt;// Focus &amp;amp; blur effects&lt;/span&gt;
  &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#search-input&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;focus&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="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nx"&gt;labelTxt&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;val&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#search-input&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;blur&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="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;val&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;labelTxt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="c1"&gt;// On submit change the value while server side code is run&lt;/span&gt;
  &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#submit&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;click&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="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#search-input&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;value&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Searching...&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So we start inside a $(document).ready() with a nested function as an argument so that your code will load after the document does. This allows for the unobtrusive targeting of elements, if you don’t run your code after the document’s load event there won’t be anything for JavaScript to work with.&lt;br&gt;&lt;br&gt;
First we need to grab the text from inside the Label element and store it in a variable. I’ve called that variable &lt;strong&gt;labelTxt&lt;/strong&gt;. Next we’ll set the search input’s value attribute equal to the contents of the labelTxt variable using the &lt;strong&gt;attr()&lt;/strong&gt; method.&lt;br&gt;&lt;br&gt;
Now we need to setup two functions. One for onfocus, an event that is triggered when a user selects a form field, and another for onblur, an event that is triggered when a user leaves that selected field (or de-selects it).&lt;br&gt;&lt;br&gt;
We use jQuery’s &lt;strong&gt;focus() method&lt;/strong&gt; to nest a function that will set the value to be blank. Next we’ll use the blur() method to put the contents of the labelTxt variable (that we defined earlier) back into the value attribute of the search input.&lt;br&gt;&lt;br&gt;
As an added bonus you can use the &lt;strong&gt;submit() method&lt;/strong&gt; to change the value to “Searching…” when the user hit’s the search button. This gives the user some instant feedback, hopefully letting them know that they’ve submitted there information and it’s time to chill while the server does it’s thing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Working Example
&lt;/h3&gt;

&lt;p&gt;See a working example&lt;/p&gt;

</description>
      <category>jquery</category>
      <category>development</category>
    </item>
    <item>
      <title>Safe MailTo’s With jQuery</title>
      <dc:creator>Kevinleary.net</dc:creator>
      <pubDate>Tue, 03 Nov 2026 17:13:52 +0000</pubDate>
      <link>https://dev.to/kevinlearynet/safe-mailtos-with-jquery-11in</link>
      <guid>https://dev.to/kevinlearynet/safe-mailtos-with-jquery-11in</guid>
      <description>&lt;p&gt;There is a newer version of this post available called &lt;a href="https://www.kevinleary.net/jquery-mailto-links-plugin-version-11/" rel="noopener noreferrer"&gt;jQuery Mailto Links Plugin: Version 1.1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here’s a small snippet I created on the job, I thought some people may find it useful. It was built using jQuery version 1.2.3. The purpose of this snippet is reject those nasty spam bots from stealing your (or your clients) email address from mailto: links.&lt;/p&gt;

&lt;h3&gt;
  
  
  XHTML
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;a dummy-href="[email]info[at]kevinleary[dot]net" rel="email"&amp;gt;Kevin Leary&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  JavaScript / jQuery
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;ready&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="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;a[rel='email']&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;each&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;// Modify the mailto: value&lt;/span&gt;
        &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;mailtoVal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;href&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;mailtoVal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mailtoVal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[email]&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mailto:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;mailtoVal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mailtoVal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[at]&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;mailtoVal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mailtoVal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[dot]&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="c1"&gt;// Auto-generate title tags for users&lt;/span&gt;
        &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;mailtoTitle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mailtoVal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mailto:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Email: &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;title&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;mailtoTitle&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="c1"&gt;// onClick Event&lt;/span&gt;
        &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;click&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="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;href&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mailtoHref&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usage
&lt;/h3&gt;

&lt;p&gt;Add &lt;strong&gt;rel=”email”&lt;/strong&gt; to each anchor that links to an email address. Next format all of your &lt;strong&gt;mailto:&lt;/strong&gt; links like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;href="[email]kevin[at]bluehousegroup[dot]com"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you have done this you need to link to your copy of jQuery &lt;strong&gt;before&lt;/strong&gt; you link to your JavaScript file.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;p&gt;The script will basically find all anchor tags with a &lt;strong&gt;rel=”email”&lt;/strong&gt; attribute. It will then perform the following actions to each:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;“[email]”&lt;/strong&gt; will be replaced with &lt;strong&gt;“mailto”&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;“[at]”&lt;/strong&gt; will be replaced with &lt;strong&gt;“@”&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;“[dot]”&lt;/strong&gt; will be replaced with &lt;strong&gt;“.”&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  The anchor’s title tag will be automatically generated to display the correct email address. This will allow users to see the email address. Many users often wish to send email directly from their web-based email, so a mailto: is of little use to them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it, it’s pretty straight forward.&lt;/p&gt;

&lt;h3&gt;
  
  
  Other thoughts
&lt;/h3&gt;

&lt;p&gt;One topic I am concerned with is usability. This script will display [email], [at], etc. in the status bar text, making it hard for users to understand what the email address actually is.&lt;/p&gt;

</description>
      <category>jquery</category>
      <category>development</category>
    </item>
    <item>
      <title>Highlight Current WordPress Post</title>
      <dc:creator>Kevinleary.net</dc:creator>
      <pubDate>Tue, 03 Nov 2026 17:13:16 +0000</pubDate>
      <link>https://dev.to/kevinlearynet/highlight-current-wordpress-post-22d4</link>
      <guid>https://dev.to/kevinlearynet/highlight-current-wordpress-post-22d4</guid>
      <description>&lt;p&gt;I came across a dilemma recently. I wanted to highlight the WordPress post that is currently shown in my &lt;strong&gt;sidebar&lt;/strong&gt; menu. I couldn’t find a sound solution for this, so here’s what I came up with. Using &lt;strong&gt;JavaScript&lt;/strong&gt; and &lt;strong&gt;jQuery 1.2.3&lt;/strong&gt; I was able to highlight the current post in the WordPress navigation, or sidebar by dynamically adding the class “current” to the anchor tag.&lt;/p&gt;

&lt;h3&gt;
  
  
  JavaScript / jQuery
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;ready&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="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Your base URL&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;baseUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="c1"&gt;// You need to target your sidebar here, change #secondaryContent to your sidebar identifier (id)&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#secondaryContent a&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;each&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="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;href&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;baseUrl&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;href&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pathname&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;addClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;current&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  CSS
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nf"&gt;#secondaryContent&lt;/span&gt; &lt;span class="nc"&gt;.current&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;padding-left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;url&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;images&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;current-link&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gif&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;4px&lt;/span&gt; &lt;span class="nb"&gt;no-repeat&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usage
&lt;/h3&gt;

&lt;p&gt;First include your copy of jQuery within the HEAD section of the document. Next include the above snippet of JavaScript in your document. Let the script do the rest.&lt;/p&gt;

&lt;h4&gt;
  
  
  Note
&lt;/h4&gt;

&lt;p&gt;Be sure to modify the &lt;strong&gt;baseUrl&lt;/strong&gt; variable, making it equal to your domain name. Without this the script will &lt;strong&gt;NOT&lt;/strong&gt; function.&lt;/p&gt;

&lt;h3&gt;
  
  
  Related links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://jquery.com/" rel="noopener noreferrer"&gt;jQuery&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://wordpress.org/support/topic/highlight-current-post-in-sidebar/" rel="noopener noreferrer"&gt;WordPress Support Forums&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>wordpressthemes</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>Better Web Design Workflow using OS X Keyboard Shortcuts</title>
      <dc:creator>Kevinleary.net</dc:creator>
      <pubDate>Tue, 03 Nov 2026 17:12:41 +0000</pubDate>
      <link>https://dev.to/kevinlearynet/better-web-design-workflow-using-os-x-keyboard-shortcuts-9g4</link>
      <guid>https://dev.to/kevinlearynet/better-web-design-workflow-using-os-x-keyboard-shortcuts-9g4</guid>
      <description>&lt;p&gt;Taking advantage of shortcut keys can save valuable time, speed up your workflow and increase productivity. I’ve put together a list of links to shortcuts and cheat sheets for the various applications and tools I frequently encounter. Please let me know if I’m missing out on anything extraordinary (because I probably am).&lt;/p&gt;

&lt;h3&gt;
  
  
  Mac OS X Shortcuts
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.danrodney.com/mac/index.html" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa17zqdroac08yx5w06pu.jpg" alt="Dan Rodney shows us some handy Mac OS X Keyboard Shortcuts" width="628" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Photoshop Shortcuts
&lt;/h3&gt;

&lt;p&gt;Trevor Morris over at &lt;a href="https://morris-photographics.com/photoshop/shortcuts/" rel="noopener noreferrer"&gt;morris-photographics.com&lt;/a&gt; has put together a great collection PDF documents that give an overview of the shortcut commands available in Photoshop. His article provides seperate PDF’s for Mac and PC shortcuts as well as &lt;strong&gt;multiple versions of Photoshop&lt;/strong&gt; including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://morris-photographics.com/photoshop/shortcuts/#pscs3" rel="noopener noreferrer"&gt;Adobe Photoshop CS3&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://morris-photographics.com/photoshop/shortcuts/#pscs2" rel="noopener noreferrer"&gt;Adobe Photoshop CS2&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://morris-photographics.com/photoshop/shortcuts/#pscs" rel="noopener noreferrer"&gt;Adobe Photoshop CS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://morris-photographics.com/photoshop/shortcuts/#ps7" rel="noopener noreferrer"&gt;Adobe Photoshop 7&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://morris-photographics.com/photoshop/shortcuts/#ps6" rel="noopener noreferrer"&gt;Adobe Photoshop 6&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://morris-photographics.com/photoshop/shortcuts/#ps5" rel="noopener noreferrer"&gt;Adobe Photoshop 5&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Macromedia/Adobe Flash
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Adobe Flash CS3 &lt;a href="https://edutechwiki.unige.ch/en/Flash_CS3_keyboard_shortcuts" rel="noopener noreferrer"&gt;Mac &amp;amp; PC&lt;/a&gt; (Replace Ctrl with Cmnd)&lt;/li&gt;
&lt;li&gt;  Adobe Flash 8 &lt;a href="https://webwasp.co.uk/tutorials/038/" rel="noopener noreferrer"&gt;Mac &amp;amp; PC&lt;/a&gt; (Replace Ctrl with Cmnd)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  jQuery
&lt;/h3&gt;

&lt;p&gt;Having &lt;a href="https://jquery.com/" rel="noopener noreferrer"&gt;jQuery&lt;/a&gt; commands available is always a plus for those who use this library frequently. These are a little old, but even with rapidity (maybe thats a word) at which &lt;a href="https://jquery.com/" rel="noopener noreferrer"&gt;jQuery&lt;/a&gt; is being updated they are still very relevant and functional in the latest version. &lt;a href="https://jquery.com/" rel="noopener noreferrer"&gt;jQuery 1.2.3&lt;/a&gt; is the latest build at the time of this post.&lt;/p&gt;

&lt;p&gt;For anyone that frequently uses the &lt;a href="https://jquery.com/" rel="noopener noreferrer"&gt;jQuery&lt;/a&gt; JavaScript Library I would highly recommend the &lt;a href="https://subscription.packtpub.com/search?query=jquery%20reference%20guide%20Open%20Source" rel="noopener noreferrer"&gt;jQuery Reference Guide&lt;/a&gt; by Jonathan Chaffer and Karl Swedberg.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.define-web.com/jquery_cheat_sheet/jquery_cheat_sheet_080306_v1.pdf" rel="noopener noreferrer"&gt;jQuery Cheat Sheet&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Search Engine Querys
&lt;/h3&gt;

&lt;p&gt;These search engine commands allow you to do all sorts of wonderful things like see who’s linking to your site, check your page ranking and view the total number of pages there are related to your site. These are great for those who frequently practice SEO.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://torquepartnership.com/" rel="noopener noreferrer"&gt;Search Engine Query Cheat Sheets&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Subversion
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.kevinleary.net/wp-content/uploads/2008/03/svn-refcard.pdf" rel="noopener noreferrer"&gt;Subversion Quick Reference Card&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Sources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.cs.put.poznan.pl/csobaniec/" rel="noopener noreferrer"&gt;Cezary Sobaniec, PhD&lt;/a&gt; – Subversion Quick Reference Card&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.danrodney.com/mac/index.html" rel="noopener noreferrer"&gt;Dan Rodney – Mac OS X Keyboard Shortcuts&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://morris-photographics.com/photoshop/shortcuts/" rel="noopener noreferrer"&gt;Adobe Photoshop Keyboard Shortcuts | Trevor Morris Photographics&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Digital Overload – Dreamweaver shortcuts&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://torquepartnership.com/" rel="noopener noreferrer"&gt;e3 internet&lt;/a&gt; – Search Engine Query Cheat Sheets&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.petefreitag.com/blog/dev-cheat-sheets/" rel="noopener noreferrer"&gt;PeteFreitag.com&lt;/a&gt; – Cheat Sheet Roundup – Over 30 Cheatsheets for developers&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>photoshop</category>
      <category>business</category>
    </item>
    <item>
      <title>jQuery Safer Mailto Links Plugin</title>
      <dc:creator>Kevinleary.net</dc:creator>
      <pubDate>Tue, 03 Nov 2026 17:12:06 +0000</pubDate>
      <link>https://dev.to/kevinlearynet/jquery-safer-mailto-links-plugin-20e0</link>
      <guid>https://dev.to/kevinlearynet/jquery-safer-mailto-links-plugin-20e0</guid>
      <description>&lt;p&gt;There is a newer version of this post available called &lt;a href="https://www.kevinleary.net/jquery-mailto-links-plugin-version-11/" rel="noopener noreferrer"&gt;jQuery Mailto Links Plugin: Version 1.1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Recently I realized that jQuery plugins are the way to go for building re-usable, modular code snippets. As a result I have revisited the jQuery Safe Mailto’s function, building a jQuery Plugin to replace it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Working Example
&lt;/h3&gt;

&lt;p&gt;info[at]kevinleary[dot]net&lt;/p&gt;

&lt;p&gt;All instances of &lt;strong&gt;“[at]”&lt;/strong&gt; will be replaces with &lt;strong&gt;“@”&lt;/strong&gt;;&lt;br&gt;&lt;br&gt;
Likewise, &lt;strong&gt;[dot]&lt;/strong&gt; will be replaced with &lt;strong&gt;“.”&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Plugin Code
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;jQuery&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;safeMailTo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&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="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;mailtoHref&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;href&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;mailtoHref&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mailtoHref&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;mailtoHref&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mailto:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;mailtoHref&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;mailtoHref&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mailtoHref&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[at]&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;mailtoHref&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mailtoHref&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[dot]&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;mailtoText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;text&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nx"&gt;mailtoText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mailtoText&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[at]&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;mailtoText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mailtoText&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[dot]&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;mailtoText&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;mailtoTitle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mailtoHref&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mailto:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Email: &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;title&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;mailtoTitle&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;click&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="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;href&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mailtoHref&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usage
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt; Include the &lt;strong&gt;latest version of jQuery&lt;/strong&gt; into the HEAD section of the document.&lt;/li&gt;
&lt;li&gt; Include &lt;strong&gt;jquery.mailto.js&lt;/strong&gt; into the HEAD section of the document.&lt;/li&gt;
&lt;li&gt; Add the &lt;strong&gt;.safeMailTo()&lt;/strong&gt; method onto the selector you wish to modify&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Example Implementation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;ready&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="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;a[rel='email']&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;safeMailTo&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Download
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.kevinleary.net/wp-content/uploads/2008/04/jquery.mailto.js" rel="noopener noreferrer"&gt;jQuery Safe Mailto Plugin&lt;/a&gt; JavaScript (.js)&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.kevinleary.net/wp-content/uploads/2008/04/jquery.mailto.js.zip" rel="noopener noreferrer"&gt;jQuery Safe Mailto Plugin&lt;/a&gt; ZIP (archived)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.jquery.com" rel="noopener noreferrer"&gt;jQuery&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://learn.jquery.com/plugins/" rel="noopener noreferrer"&gt;jQuery Plugins/Authoring&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>jquery</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>Working With Dreamweaver Site Files (.STE)</title>
      <dc:creator>Kevinleary.net</dc:creator>
      <pubDate>Tue, 03 Nov 2026 17:11:30 +0000</pubDate>
      <link>https://dev.to/kevinlearynet/working-with-dreamweaver-site-files-ste-38fm</link>
      <guid>https://dev.to/kevinlearynet/working-with-dreamweaver-site-files-ste-38fm</guid>
      <description>&lt;p&gt;When connecting to a new project via FTP I will occasionally come across .STE (Dreamweaver Site File) files being used as a means to store FTP username and password information. The FTP password is always encrypted in these files. This causes problems because I do not use Dreamweaver to build websites. Even worse, what if I were someone else that did not own a copy of Dreamweaver?&lt;/p&gt;

&lt;p&gt;If you come across a legacy site that uses an .STE file to provide FTP information it can be difficult to get that information into another program.&lt;/p&gt;

&lt;h3&gt;
  
  
  Process
&lt;/h3&gt;

&lt;p&gt;Here is the process I went through to extract the password from a .STE file:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Open the .STE with a plain text editor. You will see an XML document.&lt;/li&gt;
&lt;li&gt; You will see that the &lt;strong&gt;&amp;amp;lsremoteinfo&amp;gt;&lt;/strong&gt; tag has many attributes. Find the &lt;strong&gt;pw=”” attribute&lt;/strong&gt; and copy it’s contents to the clipboard.&lt;/li&gt;
&lt;li&gt; Go to &lt;strong&gt;&lt;a href="https://www.moredw.com/getPW.php" rel="noopener noreferrer"&gt;https://www.moredw.com/getPW.php&lt;/a&gt;&lt;/strong&gt; and click on the &lt;strong&gt;“Get FTP Password online”&lt;/strong&gt; towards the bottom of the page. This will launch a popup window.&lt;/li&gt;
&lt;li&gt; Use the WebApp here to de-crypt the password.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s it, you’ve de-crypted the FTP password, your free now.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  File Extension .STE Details&lt;/li&gt;
&lt;li&gt;  De-crypting a Dreamweaver .STE Password&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>css</category>
      <category>business</category>
    </item>
    <item>
      <title>AJAX, XML and Internet Explorer</title>
      <dc:creator>Kevinleary.net</dc:creator>
      <pubDate>Tue, 03 Nov 2026 17:10:55 +0000</pubDate>
      <link>https://dev.to/kevinlearynet/ajax-xml-and-internet-explorer-5a1k</link>
      <guid>https://dev.to/kevinlearynet/ajax-xml-and-internet-explorer-5a1k</guid>
      <description>&lt;p&gt;While working on the &lt;a href="https://kmcpartners.com/" rel="noopener noreferrer"&gt;KMC Partners&lt;/a&gt; website I stumbled upon a cross browser issue using jQuery’s AJAX $.get() method to load and parse XML data.&lt;/p&gt;

&lt;p&gt;It seems that if you are using AJAX to load an XML file with &lt;strong&gt;UTF-8&lt;/strong&gt; character encoding, it will fail in both Internet Explorer 6.0 and 7.0.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, if you change that character encoding to &lt;strong&gt;iso-8859-1&lt;/strong&gt; it will load without issues in both versions of Internet Explorer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?xml version="1.0" encoding="iso-8859-1"?&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This was a big headache for me, and I hope this helps someone else out there avoid a similar issue.&lt;/p&gt;

</description>
      <category>ajax</category>
      <category>xml</category>
      <category>development</category>
    </item>
    <item>
      <title>External JavaScript on Demand With $.getScript()</title>
      <dc:creator>Kevinleary.net</dc:creator>
      <pubDate>Tue, 03 Nov 2026 17:10:20 +0000</pubDate>
      <link>https://dev.to/kevinlearynet/external-javascript-on-demand-with-getscript-5cmb</link>
      <guid>https://dev.to/kevinlearynet/external-javascript-on-demand-with-getscript-5cmb</guid>
      <description>&lt;p&gt;I find myself using JavaScript more and more often in my work. As work on a particular site grows, I find that too many external scripts begin to pile up in the section of my document, eventually effecting performance. Thanks to jQuery’s $.getScript method, I’ve found an elegant solution to this problem.&lt;/p&gt;

&lt;p&gt;Think of &lt;strong&gt;jQuery.getScript()&lt;/strong&gt; as the JavaScript equivalent to CSS’s &lt;strong&gt;&lt;a class="mentioned-user" href="https://dev.to/import"&gt;@import&lt;/a&gt;&lt;/strong&gt;. Take it one step further and use it to load JavaScript only when it is needed and you have a lean combination.&lt;/p&gt;

&lt;h3&gt;
  
  
  JavaScript / jQuery
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;a.email&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getScript&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;js/jquery.mailto.js&lt;/span&gt;&lt;span class="dl"&gt;'&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="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;a.email&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;mailto&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;p&gt;This small snippet of code that will check for the existence of an object, in this case that object is any anchor link with a class of email. If this object is found on a page, a corresponding .js file (js/jquery.mailto.js) will be loaded and a callback function initiated (&lt;strong&gt;$(‘a.email’).mailto();&lt;/strong&gt;). If the object is not found, the script will not be loaded. This assumes that the snippet is enclosed in a document ready event.&lt;/p&gt;

&lt;p&gt;I find this approach to be the most elegant when handling multiple jQuery plugins. One could compare it to the &lt;a class="mentioned-user" href="https://dev.to/import"&gt;@import&lt;/a&gt; CSS command that is frequently used to load in multiple style sheets from one master CSS file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Disable Caching
&lt;/h3&gt;

&lt;p&gt;When loading external scripts dynamically with jQuery’s getScript, a cache busting parameter is added to the request URL. So, instead of writing something like &lt;strong&gt;&amp;lt;/strong&amp;gt;, it writes something like &amp;lt;strong&amp;gt;&amp;lt;script src=’/js/foo.js?\_=ts2477874287′&amp;gt;&amp;lt;/strong&amp;gt;, causing the script to be loaded fresh each time.&amp;lt;/p&amp;gt;
&amp;lt;h3&amp;gt;
  &amp;lt;a name="resources" href="#resources" class="anchor"&amp;gt;
  &amp;lt;/a&amp;gt;
  Resources
&amp;lt;/h3&amp;gt;

&amp;lt;ul&amp;gt;
&amp;lt;li&amp;gt;  &amp;lt;a href="https://www.amazon.com/dp/1935182323/ref=asc_df_19351823231395195?smid=ATVPDKIKX0DER&amp;amp;tag=hyprod-20&amp;amp;linkCode=asn&amp;amp;creative=395093&amp;amp;creativeASIN=1935182323"&amp;gt;jQuery in Action: Second Edition&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;  &amp;lt;a href="https://www.amazon.com/Learning-jQuery-1-3-Jonathan-Chaffer/dp/1847196705"&amp;gt;Learning jQuery 1.3&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;  &amp;lt;a href="https://api.jquery.com/jQuery.getScript/"&amp;gt;jQuery.getScript Documentation&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>jquery</category>
      <category>development</category>
    </item>
    <item>
      <title>Testing Page Load Speed With Firebug</title>
      <dc:creator>Kevinleary.net</dc:creator>
      <pubDate>Tue, 03 Nov 2026 17:09:44 +0000</pubDate>
      <link>https://dev.to/kevinlearynet/testing-page-load-speed-with-firebug-2lbi</link>
      <guid>https://dev.to/kevinlearynet/testing-page-load-speed-with-firebug-2lbi</guid>
      <description>&lt;p&gt;The more I find myself using JavaScript, the more I begin to worry about the weight of my pages. With the use of jQuery, much that was tradiotionally server side can now be handled on the client side with JavaScript.&lt;/p&gt;

&lt;p&gt;So how does one go about measuring the time it takes to load there website? Furthermore, how do we determine which files are taking the most time to load? The answer is the &lt;strong&gt;&lt;a href="https://getfirebug.com/" rel="noopener noreferrer"&gt;FireBug&lt;/a&gt; Net Panel&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To use the Net (short for Network Monitoring) tools you must go to the “Net” tab in Firebug and active them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.kevinleary.net/wp-content/uploads/2008/08/firebug-net-disabled.gif" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwsrv.nl%3Furl%3Dkevinleary.net%2Fwp-content%2Fuploads%2F2008%2F08%2Ffirebug-net-disabled.gif%26w%3D940%26q%3D80%26output%3Dwebp%26maxage%3D356d%26dpr%3D2" alt="FireBug Net Panel (disabled)" width="1880" height="839"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then simply reload your page and watch as Firebug tells you the load time of each item sequentially, whether the item is a CSS, JavaScript or image file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.kevinleary.net/wp-content/uploads/2008/08/firebug-page-load-times.gif" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwsrv.nl%3Furl%3Dkevinleary.net%2Fwp-content%2Fuploads%2F2008%2F08%2Ffirebug-page-load-times.gif%26w%3D940%26q%3D80%26output%3Dwebp%26maxage%3D356d%26dpr%3D2" alt="FireBug Page Load Times" width="1880" height="688"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FireBug&lt;/strong&gt; will provide you with monitoring on the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  XMLHttpRequest/AJAX monitoring&lt;/li&gt;
&lt;li&gt;  Examine HTTP Headers&lt;/li&gt;
&lt;li&gt;  Whether a file has been cached or not cached&lt;/li&gt;
&lt;li&gt;  Break it down by file type (CSS, Images, JavaScript, etc.)&lt;/li&gt;
&lt;li&gt;  Watch the timeline unfold&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://getfirebug.com/" rel="noopener noreferrer"&gt;Firebug&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>websiteoptimization</category>
      <category>development</category>
    </item>
    <item>
      <title>True Seperation of Presentation &amp; Content with XML</title>
      <dc:creator>Kevinleary.net</dc:creator>
      <pubDate>Tue, 03 Nov 2026 17:09:09 +0000</pubDate>
      <link>https://dev.to/kevinlearynet/true-seperation-of-presentation-content-with-xml-33go</link>
      <guid>https://dev.to/kevinlearynet/true-seperation-of-presentation-content-with-xml-33go</guid>
      <description>&lt;p&gt;Web standards praises the idea of separating presentation from content. Unfortunately, doing so is harder said than done in the professional world.&lt;br&gt;&lt;br&gt;
When I begin working on a redesign I usually find myself spending countless hours re-formatting content, so what’s the point? If a client wants specific information laid out as an unordered list (or outline) one day and tabular data the next, you’ll find yourself rebuilding the page’s structure.&lt;br&gt;&lt;br&gt;
The best solution to this ongoing probably is to utilize XML to describe the content as best as possible. The one problem with this approach is that parsing that XML into usable code is typically difficult. With PHP5’s implementation of the &lt;strong&gt;SimpleXML&lt;/strong&gt; object parsing XML is finally as simple as it should be.&lt;br&gt;&lt;br&gt;
This is the best way to handle web content in my opinion. The advantages as I see them are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Store your content in one central location, even it is used in multiple places throughout a site&lt;/li&gt;
&lt;li&gt;  Write your content once using the most semantic markup of all, XML&lt;/li&gt;
&lt;li&gt;  Loop through tags to make styling repeated content a breeze (e.g. Press Releases page)&lt;/li&gt;
&lt;li&gt;  Use your content with different technologieslore&lt;/li&gt;
&lt;li&gt;  Create RSS feeds, supply it to other domains&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Using the SimpleXML object
&lt;/h2&gt;

&lt;p&gt;Let’s get our hands dirty and see how to parse an XML file with SimpleXML.&lt;/p&gt;

&lt;h3&gt;
  
  
  XML
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;press&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;article&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;date&amp;gt;&lt;/span&gt;August 26&lt;span class="nt"&gt;&amp;lt;/date&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;year&amp;gt;&lt;/span&gt;2008&lt;span class="nt"&gt;&amp;lt;/year&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&amp;gt;&lt;/span&gt;pdf/consumer-brochure.pdf&lt;span class="nt"&gt;&amp;lt;/link&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;New press release!&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;description&amp;gt;&lt;/span&gt;Press release summary or explanation would be here, if this wasn't a demo.&lt;span class="nt"&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/press&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  PHP
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$press&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;simpleXML_load_file&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"press.xml"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$press&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$articles&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
&lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"article"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$articles&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;link&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$articles&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$articles&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"date"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;strong&amp;gt;&lt;/span&gt;Published&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt; &lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$articles&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;, &lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$articles&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;?&lt;/span&gt; 
&lt;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  XHTML (generated by SimpleXML)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"article"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;New press release!&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Press release summary or explanation would be here, if this wasn't a demo.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"date"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;strong&amp;gt;&lt;/span&gt;Published&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt; August 26, 2008&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Download source
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.kevinleary.net/wp-content/uploads/2008/08/simplexml.zip" rel="noopener noreferrer"&gt;Download the SimpleXML Source Code&lt;/a&gt; for the example above.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recommended Reading
&lt;/h3&gt;

&lt;p&gt;I was introduced to the SimpleXML object while browsing PHP 5 Recipes: A Problem-Solution Approach. I would recommend this book to professional developers looking for a great desk reference resource. As best put by the author:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“This book is a source of instant solutions, including countless pieces of useful code that you can just copy and paste into your own applications, giving you answers fast and saving you hours of coding time.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That said, it’s big, long, and definitely not something you sit down and actually read. It provides a well documented reference of PHP 5 that includes some newer additions such as SimpleXML.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.oreilly.com/ideas/" rel="noopener noreferrer"&gt;ONLamp.com, Using PHP5’s SimpleXML object&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webstandards</category>
      <category>development</category>
    </item>
    <item>
      <title>Form Input Default Values With The jQuery valueFx() Plugin</title>
      <dc:creator>Kevinleary.net</dc:creator>
      <pubDate>Tue, 03 Nov 2026 17:08:33 +0000</pubDate>
      <link>https://dev.to/kevinlearynet/form-input-default-values-with-the-jquery-valuefx-plugin-3ge2</link>
      <guid>https://dev.to/kevinlearynet/form-input-default-values-with-the-jquery-valuefx-plugin-3ge2</guid>
      <description>&lt;p&gt;Have you ever wanted to provide forms with default values or examples to improve user experience? Here’s how you can do it in an easy, re-usable way using a jQuery plugin called valueFx.&lt;/p&gt;

&lt;p&gt;This is a more agile, re-usable version of the &lt;strong&gt;Focus &amp;amp; Blur effects&lt;/strong&gt; I’ve previously posted about. This can be used on as many text ‘s as you like, simply by adding &lt;strong&gt;class=”valueFx”&lt;/strong&gt; to the tag.&lt;/p&gt;

&lt;p&gt;For a better explanation of what this is visit the &lt;a href="https://www.kevinleary.net/search-field-focus-and-blur-effects/" rel="noopener noreferrer"&gt;Search Field Focus &amp;amp; Blur Effects&lt;/a&gt; post.&lt;/p&gt;

&lt;h3&gt;
  
  
  XHTML
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;input id="email" class="valueFx" name="email" type="text" value="you@domain.com" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  JavaScript / jQuery Plugin
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;jQuery&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;valueFx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&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="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;$field&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;$value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;val&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;$newVal&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  
    &lt;span class="nx"&gt;$field&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;placeholder&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;$field&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;focus&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="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$field&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hasClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;valueFx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)){&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;$value&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$value&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nx"&gt;$value&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="nx"&gt;$field&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;removeClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;placeholder&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;addClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;focus&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;val&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
          &lt;span class="nx"&gt;$newVal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;val&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="nx"&gt;$field&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;blur&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="nx"&gt;$newVal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;val&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
      &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$newVal&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;$field&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;val&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$value&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;removeClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;focus&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;addClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;placeholder&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;$field&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;removeClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;placeholder&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;removeClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;valueFx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Simple Usage
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;input.valueFx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;valueFx&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Above is the easiest way to setup this plugin. Of course, I prefer to add a little more logic to make things more intuitive.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advanced Usage
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;input.valueFx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getScript&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/path/to/jquery.valueFx.js&lt;/span&gt;&lt;span class="dl"&gt;'&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="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;input.valueFx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;valueFx&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What this does is first check to see if there are any input fields in the document that have a class of “&lt;strong&gt;valueFx&lt;/strong&gt;“. If there are, we’ll load in the &lt;strong&gt;jquery.valueFx.js&lt;/strong&gt; file, and run a function once it has been loaded. This function (or callback) runs the &lt;strong&gt;valueFx() method&lt;/strong&gt; on all the input’s that have been found.&lt;/p&gt;

</description>
      <category>jquery</category>
      <category>wordpress</category>
    </item>
  </channel>
</rss>
