


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
    <title>jquery.livequery.js at e634549f1e13b5418fb8d75572866846a332ec8d from brandonaaron's livequery - GitHub</title>
    <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" />
    <link rel="fluid-icon" href="http://github.com/fluidicon.png" title="GitHub" />

    
      <link href="http://assets3.github.com/stylesheets/bundle.css?4d27ac28d46a533859aff933fdb9ffabc13408f0" media="screen" rel="stylesheet" type="text/css" />
    

    
      
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
        <script src="http://assets2.github.com/javascripts/bundle.js?4d27ac28d46a533859aff933fdb9ffabc13408f0" type="text/javascript"></script>
      
    
    
  
    
  

  <link href="http://github.com/feeds/brandonaaron/commits/livequery/e634549f1e13b5418fb8d75572866846a332ec8d" rel="alternate" title="Recent Commits to livequery:e634549f1e13b5418fb8d75572866846a332ec8d" type="application/atom+xml" />

  <meta name="description" content="Live Query utilizes the power of jQuery selectors by binding events or firing callbacks for matched elements auto-magically, even after the page has been loaded and the DOM updated." />


    
  </head>

  

  <body>
    

    <div id="main">
      <div id="header" class="">
        <div class="site">
          <div class="logo">
            <a href="http://github.com"><img src="/images/modules/header/logov3.png" alt="github" /></a>
          </div>
          
            <div class="actions">
              <a href="http://github.com/">Home</a>
              <a href="/plans"><b><u>Pricing and Signup</u></b></a>
              <a href="/repositories">Repositories</a>
              <a href="/guides">Guides</a>
              <a href="/blog">Blog</a>
              <a href="/login">Login</a>
            </div>
          
        </div>
      </div>
      
      
        
  
  
    <div id="repo_menu">
      <div class="site">
        <ul>
          
            <li class="active"><a href="http://github.com/brandonaaron/livequery/tree/">Source</a></li>
  
            <li class=""><a href="http://github.com/brandonaaron/livequery/commits/">Commits</a></li>
  
            <li class=""><a href="/brandonaaron/livequery/graphs">Graphs</a></li>
  
            <li class=""><a href="http://wiki.github.com/brandonaaron/livequery">Wiki (1)</a></li>
  
            <li class=""><a href="/brandonaaron/livequery/network">Network (2)</a></li>
  
            
            
            
  
          
        </ul>
      </div>
    </div>
  

  <div id="repo_sub_menu">
    <div class="site">
      <div class="joiner"></div>
      

      
      
      

      
    </div>
  </div>

  <div class="site">
    





<div id="repos">
  




  <div class="repo public">
    <div class="title">
      <div class="path">
        <a href="/brandonaaron">brandonaaron</a> / <b><a href="http://github.com/brandonaaron/livequery/tree">livequery</a></b>

        

          

          
            

            
              
              <a href="/signup"><img alt="fork" class="button" src="http://assets1.github.com/images/modules/repos/fork_button.png?6fbbf9bfd928a0f025f31e6f4d10b56a7b8fc27d" /></a>
            
          

          <a href="/signup" class="toggle_watch"><img alt="watch" class="button" src="http://assets0.github.com/images/modules/repos/watch_button.png?6fbbf9bfd928a0f025f31e6f4d10b56a7b8fc27d" /></a><a href="/signup" class="toggle_watch" style="display:none;"><img alt="watch" class="button" src="http://assets3.github.com/images/modules/repos/unwatch_button.png?6fbbf9bfd928a0f025f31e6f4d10b56a7b8fc27d" /></a>

          
            <a href="#" id="download_button" rel="http://github.com/brandonaaron/livequery/downloads/master"><img alt="download tarball" class="button" src="http://assets3.github.com/images/modules/repos/download_button.png?6fbbf9bfd928a0f025f31e6f4d10b56a7b8fc27d" /></a>
          
        
      </div>

      <div class="security private_security" style="display:none">
        <a href="#private_repo" rel="facebox"><img src="/images/icons/private.png" alt="private" /></a>
      </div>

      <div id="private_repo" class="hidden">
        This repository is private.
        All pages are served over SSL and all pushing and pulling is done over SSH.
        No one may fork, clone, or view it unless they are added as a <a href="/brandonaaron/livequery/edit">member</a>.

        <br/>
        <br/>
        Every repository with this icon (<img src="/images/icons/private.png" alt="private" />) is private.
      </div>

      <div class="security public_security" style="">
        <a href="#public_repo" rel="facebox"><img src="/images/icons/public.png" alt="public" /></a>
      </div>

      <div id="public_repo" class="hidden">
        This repository is public.
        Anyone may fork, clone, or view it.

        <br/>
        <br/>
        Every repository with this icon (<img src="/images/icons/public.png" alt="public" />) is public.
      </div>

      

      <div class="flexipill">
        <a href="/brandonaaron/livequery/network">
        <table cellpadding="0" cellspacing="0">
          <tr><td><img alt="Forks" src="http://assets1.github.com/images/modules/repos/pills/forks.png?6fbbf9bfd928a0f025f31e6f4d10b56a7b8fc27d" /></td><td class="middle"><span>2</span></td><td><img alt="Right" src="http://assets2.github.com/images/modules/repos/pills/right.png?6fbbf9bfd928a0f025f31e6f4d10b56a7b8fc27d" /></td></tr>
        </table>
        </a>
      </div>

      <div class="flexipill">
        <a href="/brandonaaron/livequery/watchers">
        <table cellpadding="0" cellspacing="0">
          <tr><td><img alt="Watchers" src="http://assets1.github.com/images/modules/repos/pills/watchers.png?6fbbf9bfd928a0f025f31e6f4d10b56a7b8fc27d" /></td><td class="middle"><span>19</span></td><td><img alt="Right" src="http://assets2.github.com/images/modules/repos/pills/right.png?6fbbf9bfd928a0f025f31e6f4d10b56a7b8fc27d" /></td></tr>
        </table>
        </a>
      </div>
    </div>
    <div class="meta">
      <table>
        
        
          <tr>
            <td class="label">Description:</td>
            <td>
              <span id="repository_description" rel="/brandonaaron/livequery/edit/update" class="">Live Query utilizes the power of jQuery selectors by binding events or firing callbacks for matched elements auto-magically, even after the page has been loaded and the DOM updated.</span>
              
            </td>
          </tr>
        

        
          
            <tr>
              <td class="label">Homepage:</td>
              <td>
                
                  
                  <a href="http://plugins.jquery.com/project/livequery">http://plugins.jquery.com/project/livequery</a>
                
              </td>
            </tr>
          

          
            <tr>
              <td class="label">Clone&nbsp;URL:</td>
              
              <td>
                <a href="git://github.com/brandonaaron/livequery.git" class="git_url_facebox" rel="#git-clone">git://github.com/brandonaaron/livequery.git</a>
                <div id="git-clone" style="display:none;">
                  Give this clone URL to anyone.
                  <br/>
                  <code>git clone git://github.com/brandonaaron/livequery.git </code>
                </div>
              </td>
            </tr>
          
          
          

          

          
      </table>

      
        <div class="pledgie">
          <a href='http://pledgie.org/campaigns/1843'><img alt='Click here to lend your support to: livequery and make a donation at www.pledgie.com !' src='http://www.pledgie.com/campaigns/1843.png?skin_name=chrome' border='0' /></a>
        </div>
          </div>
  </div>




</div>


  <div id="commit">
    <div class="group">
        
  <div class="envelope commit">
    <div class="human">
      
        <div class="message"><pre><a href="/brandonaaron/livequery/commit/e634549f1e13b5418fb8d75572866846a332ec8d">better integration with jQuery 1.3, older versions of jQuery are no longer 
supported</a> </pre></div>
      

      <div class="actor">
        <div class="gravatar">
          
          <img alt="" height="30" src="http://www.gravatar.com/avatar/5caa0660a37102fb758ebff952d936d9?s=30&amp;d=http%3A%2F%2Fgithub.com%2Fimages%2Fgravatars%2Fgravatar-30.png" width="30" />
        </div>
        <div class="name"><a href="/brandonaaron">brandonaaron</a> <span>(author)</span></div>
          <div class="date">
            <abbr class="relatize" title="2009-01-12 19:51:34">Mon Jan 12 19:51:34 -0800 2009</abbr> 
          </div>
      </div>
  
      
  
    </div>
    <div class="machine">
      <span>c</span>ommit&nbsp;&nbsp;<a href="/brandonaaron/livequery/commit/e634549f1e13b5418fb8d75572866846a332ec8d" hotkey="c">e634549f1e13b5418fb8d75572866846a332ec8d</a><br />
      <span>t</span>ree&nbsp;&nbsp;&nbsp;&nbsp;<a href="/brandonaaron/livequery/tree/e634549f1e13b5418fb8d75572866846a332ec8d" hotkey="t">773cfa4ee17e5dd6d9cfaa4db962e219128f4780</a><br />
  
      
        <span>p</span>arent&nbsp;
        
        <a href="/brandonaaron/livequery/tree/2f1a1af282e06292faae3a779fdb9f26ebbb8e47" hotkey="p">2f1a1af282e06292faae3a779fdb9f26ebbb8e47</a>
      
  
    </div>
  </div>

    </div>
  </div>





  
    <div id="path">
      <b><a href="/brandonaaron/livequery/tree">livequery</a></b> / jquery.livequery.js
    </div>

    <div id="files">
      <div class="file">
        <div class="meta">
          <div class="info">
            <span>100644</span>
            <span>226 lines (185 sloc)</span>
            <span>5.933 kb</span>
          </div>
          <div class="actions">
            
            <a href="/brandonaaron/livequery/raw/e634549f1e13b5418fb8d75572866846a332ec8d/jquery.livequery.js" id="raw-url">raw</a>
            
              <a href="/brandonaaron/livequery/blame/e634549f1e13b5418fb8d75572866846a332ec8d/jquery.livequery.js">blame</a>
            
            <a href="/brandonaaron/livequery/commits/master/jquery.livequery.js">history</a>
          </div>
        </div>
        
  <div class="data syntax">
    
      <table cellpadding="0" cellspacing="0">
        <tr>
          <td>
            
            <pre class="line_numbers">
<span id="LID1" rel="#L1">1</span>
<span id="LID2" rel="#L2">2</span>
<span id="LID3" rel="#L3">3</span>
<span id="LID4" rel="#L4">4</span>
<span id="LID5" rel="#L5">5</span>
<span id="LID6" rel="#L6">6</span>
<span id="LID7" rel="#L7">7</span>
<span id="LID8" rel="#L8">8</span>
<span id="LID9" rel="#L9">9</span>
<span id="LID10" rel="#L10">10</span>
<span id="LID11" rel="#L11">11</span>
<span id="LID12" rel="#L12">12</span>
<span id="LID13" rel="#L13">13</span>
<span id="LID14" rel="#L14">14</span>
<span id="LID15" rel="#L15">15</span>
<span id="LID16" rel="#L16">16</span>
<span id="LID17" rel="#L17">17</span>
<span id="LID18" rel="#L18">18</span>
<span id="LID19" rel="#L19">19</span>
<span id="LID20" rel="#L20">20</span>
<span id="LID21" rel="#L21">21</span>
<span id="LID22" rel="#L22">22</span>
<span id="LID23" rel="#L23">23</span>
<span id="LID24" rel="#L24">24</span>
<span id="LID25" rel="#L25">25</span>
<span id="LID26" rel="#L26">26</span>
<span id="LID27" rel="#L27">27</span>
<span id="LID28" rel="#L28">28</span>
<span id="LID29" rel="#L29">29</span>
<span id="LID30" rel="#L30">30</span>
<span id="LID31" rel="#L31">31</span>
<span id="LID32" rel="#L32">32</span>
<span id="LID33" rel="#L33">33</span>
<span id="LID34" rel="#L34">34</span>
<span id="LID35" rel="#L35">35</span>
<span id="LID36" rel="#L36">36</span>
<span id="LID37" rel="#L37">37</span>
<span id="LID38" rel="#L38">38</span>
<span id="LID39" rel="#L39">39</span>
<span id="LID40" rel="#L40">40</span>
<span id="LID41" rel="#L41">41</span>
<span id="LID42" rel="#L42">42</span>
<span id="LID43" rel="#L43">43</span>
<span id="LID44" rel="#L44">44</span>
<span id="LID45" rel="#L45">45</span>
<span id="LID46" rel="#L46">46</span>
<span id="LID47" rel="#L47">47</span>
<span id="LID48" rel="#L48">48</span>
<span id="LID49" rel="#L49">49</span>
<span id="LID50" rel="#L50">50</span>
<span id="LID51" rel="#L51">51</span>
<span id="LID52" rel="#L52">52</span>
<span id="LID53" rel="#L53">53</span>
<span id="LID54" rel="#L54">54</span>
<span id="LID55" rel="#L55">55</span>
<span id="LID56" rel="#L56">56</span>
<span id="LID57" rel="#L57">57</span>
<span id="LID58" rel="#L58">58</span>
<span id="LID59" rel="#L59">59</span>
<span id="LID60" rel="#L60">60</span>
<span id="LID61" rel="#L61">61</span>
<span id="LID62" rel="#L62">62</span>
<span id="LID63" rel="#L63">63</span>
<span id="LID64" rel="#L64">64</span>
<span id="LID65" rel="#L65">65</span>
<span id="LID66" rel="#L66">66</span>
<span id="LID67" rel="#L67">67</span>
<span id="LID68" rel="#L68">68</span>
<span id="LID69" rel="#L69">69</span>
<span id="LID70" rel="#L70">70</span>
<span id="LID71" rel="#L71">71</span>
<span id="LID72" rel="#L72">72</span>
<span id="LID73" rel="#L73">73</span>
<span id="LID74" rel="#L74">74</span>
<span id="LID75" rel="#L75">75</span>
<span id="LID76" rel="#L76">76</span>
<span id="LID77" rel="#L77">77</span>
<span id="LID78" rel="#L78">78</span>
<span id="LID79" rel="#L79">79</span>
<span id="LID80" rel="#L80">80</span>
<span id="LID81" rel="#L81">81</span>
<span id="LID82" rel="#L82">82</span>
<span id="LID83" rel="#L83">83</span>
<span id="LID84" rel="#L84">84</span>
<span id="LID85" rel="#L85">85</span>
<span id="LID86" rel="#L86">86</span>
<span id="LID87" rel="#L87">87</span>
<span id="LID88" rel="#L88">88</span>
<span id="LID89" rel="#L89">89</span>
<span id="LID90" rel="#L90">90</span>
<span id="LID91" rel="#L91">91</span>
<span id="LID92" rel="#L92">92</span>
<span id="LID93" rel="#L93">93</span>
<span id="LID94" rel="#L94">94</span>
<span id="LID95" rel="#L95">95</span>
<span id="LID96" rel="#L96">96</span>
<span id="LID97" rel="#L97">97</span>
<span id="LID98" rel="#L98">98</span>
<span id="LID99" rel="#L99">99</span>
<span id="LID100" rel="#L100">100</span>
<span id="LID101" rel="#L101">101</span>
<span id="LID102" rel="#L102">102</span>
<span id="LID103" rel="#L103">103</span>
<span id="LID104" rel="#L104">104</span>
<span id="LID105" rel="#L105">105</span>
<span id="LID106" rel="#L106">106</span>
<span id="LID107" rel="#L107">107</span>
<span id="LID108" rel="#L108">108</span>
<span id="LID109" rel="#L109">109</span>
<span id="LID110" rel="#L110">110</span>
<span id="LID111" rel="#L111">111</span>
<span id="LID112" rel="#L112">112</span>
<span id="LID113" rel="#L113">113</span>
<span id="LID114" rel="#L114">114</span>
<span id="LID115" rel="#L115">115</span>
<span id="LID116" rel="#L116">116</span>
<span id="LID117" rel="#L117">117</span>
<span id="LID118" rel="#L118">118</span>
<span id="LID119" rel="#L119">119</span>
<span id="LID120" rel="#L120">120</span>
<span id="LID121" rel="#L121">121</span>
<span id="LID122" rel="#L122">122</span>
<span id="LID123" rel="#L123">123</span>
<span id="LID124" rel="#L124">124</span>
<span id="LID125" rel="#L125">125</span>
<span id="LID126" rel="#L126">126</span>
<span id="LID127" rel="#L127">127</span>
<span id="LID128" rel="#L128">128</span>
<span id="LID129" rel="#L129">129</span>
<span id="LID130" rel="#L130">130</span>
<span id="LID131" rel="#L131">131</span>
<span id="LID132" rel="#L132">132</span>
<span id="LID133" rel="#L133">133</span>
<span id="LID134" rel="#L134">134</span>
<span id="LID135" rel="#L135">135</span>
<span id="LID136" rel="#L136">136</span>
<span id="LID137" rel="#L137">137</span>
<span id="LID138" rel="#L138">138</span>
<span id="LID139" rel="#L139">139</span>
<span id="LID140" rel="#L140">140</span>
<span id="LID141" rel="#L141">141</span>
<span id="LID142" rel="#L142">142</span>
<span id="LID143" rel="#L143">143</span>
<span id="LID144" rel="#L144">144</span>
<span id="LID145" rel="#L145">145</span>
<span id="LID146" rel="#L146">146</span>
<span id="LID147" rel="#L147">147</span>
<span id="LID148" rel="#L148">148</span>
<span id="LID149" rel="#L149">149</span>
<span id="LID150" rel="#L150">150</span>
<span id="LID151" rel="#L151">151</span>
<span id="LID152" rel="#L152">152</span>
<span id="LID153" rel="#L153">153</span>
<span id="LID154" rel="#L154">154</span>
<span id="LID155" rel="#L155">155</span>
<span id="LID156" rel="#L156">156</span>
<span id="LID157" rel="#L157">157</span>
<span id="LID158" rel="#L158">158</span>
<span id="LID159" rel="#L159">159</span>
<span id="LID160" rel="#L160">160</span>
<span id="LID161" rel="#L161">161</span>
<span id="LID162" rel="#L162">162</span>
<span id="LID163" rel="#L163">163</span>
<span id="LID164" rel="#L164">164</span>
<span id="LID165" rel="#L165">165</span>
<span id="LID166" rel="#L166">166</span>
<span id="LID167" rel="#L167">167</span>
<span id="LID168" rel="#L168">168</span>
<span id="LID169" rel="#L169">169</span>
<span id="LID170" rel="#L170">170</span>
<span id="LID171" rel="#L171">171</span>
<span id="LID172" rel="#L172">172</span>
<span id="LID173" rel="#L173">173</span>
<span id="LID174" rel="#L174">174</span>
<span id="LID175" rel="#L175">175</span>
<span id="LID176" rel="#L176">176</span>
<span id="LID177" rel="#L177">177</span>
<span id="LID178" rel="#L178">178</span>
<span id="LID179" rel="#L179">179</span>
<span id="LID180" rel="#L180">180</span>
<span id="LID181" rel="#L181">181</span>
<span id="LID182" rel="#L182">182</span>
<span id="LID183" rel="#L183">183</span>
<span id="LID184" rel="#L184">184</span>
<span id="LID185" rel="#L185">185</span>
<span id="LID186" rel="#L186">186</span>
<span id="LID187" rel="#L187">187</span>
<span id="LID188" rel="#L188">188</span>
<span id="LID189" rel="#L189">189</span>
<span id="LID190" rel="#L190">190</span>
<span id="LID191" rel="#L191">191</span>
<span id="LID192" rel="#L192">192</span>
<span id="LID193" rel="#L193">193</span>
<span id="LID194" rel="#L194">194</span>
<span id="LID195" rel="#L195">195</span>
<span id="LID196" rel="#L196">196</span>
<span id="LID197" rel="#L197">197</span>
<span id="LID198" rel="#L198">198</span>
<span id="LID199" rel="#L199">199</span>
<span id="LID200" rel="#L200">200</span>
<span id="LID201" rel="#L201">201</span>
<span id="LID202" rel="#L202">202</span>
<span id="LID203" rel="#L203">203</span>
<span id="LID204" rel="#L204">204</span>
<span id="LID205" rel="#L205">205</span>
<span id="LID206" rel="#L206">206</span>
<span id="LID207" rel="#L207">207</span>
<span id="LID208" rel="#L208">208</span>
<span id="LID209" rel="#L209">209</span>
<span id="LID210" rel="#L210">210</span>
<span id="LID211" rel="#L211">211</span>
<span id="LID212" rel="#L212">212</span>
<span id="LID213" rel="#L213">213</span>
<span id="LID214" rel="#L214">214</span>
<span id="LID215" rel="#L215">215</span>
<span id="LID216" rel="#L216">216</span>
<span id="LID217" rel="#L217">217</span>
<span id="LID218" rel="#L218">218</span>
<span id="LID219" rel="#L219">219</span>
<span id="LID220" rel="#L220">220</span>
<span id="LID221" rel="#L221">221</span>
<span id="LID222" rel="#L222">222</span>
<span id="LID223" rel="#L223">223</span>
<span id="LID224" rel="#L224">224</span>
<span id="LID225" rel="#L225">225</span>
<span id="LID226" rel="#L226">226</span>
</pre>
          </td>
          <td width="100%">
            
            
              <div class="highlight"><pre><div class="line" id="LC1"><span class="c">/*! Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)</span></div><div class="line" id="LC2"><span class="c"> * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)</span></div><div class="line" id="LC3"><span class="c"> * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.</span></div><div class="line" id="LC4"><span class="c"> *</span></div><div class="line" id="LC5"><span class="c"> * Version: 1.1.0-pre</span></div><div class="line" id="LC6"><span class="c"> * Requires jQuery 1.3+</span></div><div class="line" id="LC7"><span class="c"> * Docs: http://docs.jquery.com/Plugins/livequery</span></div><div class="line" id="LC8"><span class="c"> */</span></div><div class="line" id="LC9">&nbsp;</div><div class="line" id="LC10"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">$</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC11">&nbsp;</div><div class="line" id="LC12"><span class="nx">$</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">fn</span><span class="o">,</span> <span class="p">{</span></div><div class="line" id="LC13">&nbsp;&nbsp;<span class="nx">livequery</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">fn</span><span class="o">,</span> <span class="nx">fn2</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC14">&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="o">,</span> <span class="nx">q</span><span class="o">;</span></div><div class="line" id="LC15">&nbsp;</div><div class="line" id="LC16">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Handle different call patterns</span></div><div class="line" id="LC17">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">isFunction</span><span class="p">(</span><span class="nx">type</span><span class="p">))</span></div><div class="line" id="LC18">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">fn2</span> <span class="o">=</span> <span class="nx">fn</span><span class="o">,</span> <span class="nx">fn</span> <span class="o">=</span> <span class="nx">type</span><span class="o">,</span> <span class="nx">type</span> <span class="o">=</span> <span class="kc">undefined</span><span class="o">;</span></div><div class="line" id="LC19">&nbsp;</div><div class="line" id="LC20">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// See if Live Query already exists</span></div><div class="line" id="LC21">&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queries</span><span class="o">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">i</span><span class="o">,</span> <span class="nx">query</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC22">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span> <span class="nx">self</span><span class="p">.</span><span class="nx">selector</span> <span class="o">==</span> <span class="nx">query</span><span class="p">.</span><span class="nx">selector</span> <span class="o">&amp;&amp;</span> <span class="nx">self</span><span class="p">.</span><span class="nx">context</span> <span class="o">==</span> <span class="nx">query</span><span class="p">.</span><span class="nx">context</span> <span class="o">&amp;&amp;</span></div><div class="line" id="LC23">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">type</span> <span class="o">==</span> <span class="nx">query</span><span class="p">.</span><span class="nx">type</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="o">!</span><span class="nx">fn</span> <span class="o">||</span> <span class="nx">fn</span><span class="p">.</span><span class="nx">$lqguid</span> <span class="o">==</span> <span class="nx">query</span><span class="p">.</span><span class="nx">fn</span><span class="p">.</span><span class="nx">$lqguid</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="o">!</span><span class="nx">fn2</span> <span class="o">||</span> <span class="nx">fn2</span><span class="p">.</span><span class="nx">$lqguid</span> <span class="o">==</span> <span class="nx">query</span><span class="p">.</span><span class="nx">fn2</span><span class="p">.</span><span class="nx">$lqguid</span><span class="p">)</span> <span class="p">)</span></div><div class="line" id="LC24">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Found the query, exit the each loop</span></div><div class="line" id="LC25">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">return</span> <span class="p">(</span><span class="nx">q</span> <span class="o">=</span> <span class="nx">query</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="kc">false</span><span class="o">;</span></div><div class="line" id="LC26">&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">});</span></div><div class="line" id="LC27">&nbsp;</div><div class="line" id="LC28">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Create new Live Query if it wasn&#39;t found</span></div><div class="line" id="LC29">&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">q</span> <span class="o">=</span> <span class="nx">q</span> <span class="o">||</span> <span class="k">new</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">selector</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">context</span><span class="o">,</span> <span class="nx">type</span><span class="o">,</span> <span class="nx">fn</span><span class="o">,</span> <span class="nx">fn2</span><span class="p">);</span></div><div class="line" id="LC30">&nbsp;</div><div class="line" id="LC31">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Make sure it is running</span></div><div class="line" id="LC32">&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">q</span><span class="p">.</span><span class="nx">stopped</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span></div><div class="line" id="LC33">&nbsp;</div><div class="line" id="LC34">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Run it immediately for the first time</span></div><div class="line" id="LC35">&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">q</span><span class="p">.</span><span class="nx">run</span><span class="p">();</span></div><div class="line" id="LC36">&nbsp;</div><div class="line" id="LC37">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Contnue the chain</span></div><div class="line" id="LC38">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">return</span> <span class="k">this</span><span class="o">;</span></div><div class="line" id="LC39">&nbsp;&nbsp;<span class="p">}</span><span class="o">,</span></div><div class="line" id="LC40">&nbsp;</div><div class="line" id="LC41">&nbsp;&nbsp;<span class="nx">expire</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">fn</span><span class="o">,</span> <span class="nx">fn2</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC42">&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span></div><div class="line" id="LC43">&nbsp;</div><div class="line" id="LC44">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Handle different call patterns</span></div><div class="line" id="LC45">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">isFunction</span><span class="p">(</span><span class="nx">type</span><span class="p">))</span></div><div class="line" id="LC46">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">fn2</span> <span class="o">=</span> <span class="nx">fn</span><span class="o">,</span> <span class="nx">fn</span> <span class="o">=</span> <span class="nx">type</span><span class="o">,</span> <span class="nx">type</span> <span class="o">=</span> <span class="kc">undefined</span><span class="o">;</span></div><div class="line" id="LC47">&nbsp;</div><div class="line" id="LC48">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Find the Live Query based on arguments and stop it</span></div><div class="line" id="LC49">&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queries</span><span class="o">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">i</span><span class="o">,</span> <span class="nx">query</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC50">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span> <span class="nx">self</span><span class="p">.</span><span class="nx">selector</span> <span class="o">==</span> <span class="nx">query</span><span class="p">.</span><span class="nx">selector</span> <span class="o">&amp;&amp;</span> <span class="nx">self</span><span class="p">.</span><span class="nx">context</span> <span class="o">==</span> <span class="nx">query</span><span class="p">.</span><span class="nx">context</span> <span class="o">&amp;&amp;</span></div><div class="line" id="LC51">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">(</span><span class="o">!</span><span class="nx">type</span> <span class="o">||</span> <span class="nx">type</span> <span class="o">==</span> <span class="nx">query</span><span class="p">.</span><span class="nx">type</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="o">!</span><span class="nx">fn</span> <span class="o">||</span> <span class="nx">fn</span><span class="p">.</span><span class="nx">$lqguid</span> <span class="o">==</span> <span class="nx">query</span><span class="p">.</span><span class="nx">fn</span><span class="p">.</span><span class="nx">$lqguid</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="o">!</span><span class="nx">fn2</span> <span class="o">||</span> <span class="nx">fn2</span><span class="p">.</span><span class="nx">$lqguid</span> <span class="o">==</span> <span class="nx">query</span><span class="p">.</span><span class="nx">fn2</span><span class="p">.</span><span class="nx">$lqguid</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">stopped</span> <span class="p">)</span></div><div class="line" id="LC52">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">stop</span><span class="p">(</span><span class="nx">query</span><span class="p">.</span><span class="nx">id</span><span class="p">);</span></div><div class="line" id="LC53">&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">});</span></div><div class="line" id="LC54">&nbsp;</div><div class="line" id="LC55">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Continue the chain</span></div><div class="line" id="LC56">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">return</span> <span class="k">this</span><span class="o">;</span></div><div class="line" id="LC57">&nbsp;&nbsp;<span class="p">}</span></div><div class="line" id="LC58"><span class="p">});</span></div><div class="line" id="LC59">&nbsp;</div><div class="line" id="LC60"><span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">selector</span><span class="o">,</span> <span class="nx">context</span><span class="o">,</span> <span class="nx">type</span><span class="o">,</span> <span class="nx">fn</span><span class="o">,</span> <span class="nx">fn2</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC61">&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="nx">selector</span> <span class="o">=</span> <span class="nx">selector</span><span class="o">;</span></div><div class="line" id="LC62">&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="nx">context</span>  <span class="o">=</span> <span class="nx">context</span><span class="o">;</span></div><div class="line" id="LC63">&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="nx">type</span>     <span class="o">=</span> <span class="nx">type</span><span class="o">;</span></div><div class="line" id="LC64">&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="nx">fn</span>       <span class="o">=</span> <span class="nx">fn</span><span class="o">;</span></div><div class="line" id="LC65">&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="nx">fn2</span>      <span class="o">=</span> <span class="nx">fn2</span><span class="o">;</span></div><div class="line" id="LC66">&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="nx">elements</span> <span class="o">=</span> <span class="p">[];</span></div><div class="line" id="LC67">&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="nx">stopped</span>  <span class="o">=</span> <span class="kc">false</span><span class="o">;</span></div><div class="line" id="LC68">&nbsp;</div><div class="line" id="LC69">&nbsp;&nbsp;<span class="c">// The id is the index of the Live Query in $.livequery.queries</span></div><div class="line" id="LC70">&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queries</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="k">this</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="o">;</span></div><div class="line" id="LC71">&nbsp;</div><div class="line" id="LC72">&nbsp;&nbsp;<span class="c">// Mark the functions for matching later on</span></div><div class="line" id="LC73">&nbsp;&nbsp;<span class="nx">fn</span><span class="p">.</span><span class="nx">$lqguid</span> <span class="o">=</span> <span class="nx">fn</span><span class="p">.</span><span class="nx">$lqguid</span> <span class="o">||</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">guid</span><span class="o">++;</span></div><div class="line" id="LC74">&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="nx">fn2</span><span class="p">)</span> <span class="nx">fn2</span><span class="p">.</span><span class="nx">$lqguid</span> <span class="o">=</span> <span class="nx">fn2</span><span class="p">.</span><span class="nx">$lqguid</span> <span class="o">||</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">guid</span><span class="o">++;</span></div><div class="line" id="LC75">&nbsp;</div><div class="line" id="LC76">&nbsp;&nbsp;<span class="c">// Return the Live Query</span></div><div class="line" id="LC77">&nbsp;&nbsp;<span class="k">return</span> <span class="k">this</span><span class="o">;</span></div><div class="line" id="LC78"><span class="p">};</span></div><div class="line" id="LC79">&nbsp;</div><div class="line" id="LC80"><span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="p">{</span></div><div class="line" id="LC81">&nbsp;&nbsp;<span class="nx">stop</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class="line" id="LC82">&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="nx">query</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span></div><div class="line" id="LC83">&nbsp;</div><div class="line" id="LC84">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">type</span> <span class="p">)</span></div><div class="line" id="LC85">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Unbind all bound events</span></div><div class="line" id="LC86">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="nx">elements</span><span class="p">.</span><span class="nx">unbind</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">type</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">fn</span><span class="p">);</span></div><div class="line" id="LC87">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">fn2</span><span class="p">)</span></div><div class="line" id="LC88">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Call the second function for all matched elements</span></div><div class="line" id="LC89">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="nx">elements</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">i</span><span class="o">,</span> <span class="nx">el</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC90">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">query</span><span class="p">.</span><span class="nx">fn2</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></div><div class="line" id="LC91">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">});</span></div><div class="line" id="LC92">&nbsp;</div><div class="line" id="LC93">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Clear out matched elements</span></div><div class="line" id="LC94">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="nx">elements</span> <span class="o">=</span> <span class="p">[];</span></div><div class="line" id="LC95">&nbsp;</div><div class="line" id="LC96">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Stop the Live Query from running until restarted</span></div><div class="line" id="LC97">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="nx">stopped</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span></div><div class="line" id="LC98">&nbsp;&nbsp;<span class="p">}</span><span class="o">,</span></div><div class="line" id="LC99">&nbsp;</div><div class="line" id="LC100">&nbsp;&nbsp;<span class="nx">run</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class="line" id="LC101">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Short-circuit if stopped</span></div><div class="line" id="LC102">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">stopped</span> <span class="p">)</span> <span class="k">return</span><span class="o">;</span></div><div class="line" id="LC103">&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="nx">query</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span></div><div class="line" id="LC104">&nbsp;</div><div class="line" id="LC105">&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="nx">oEls</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">elements</span><span class="o">,</span></div><div class="line" id="LC106">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">els</span>  <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">selector</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">context</span><span class="p">)</span><span class="o">,</span></div><div class="line" id="LC107">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">nEls</span> <span class="o">=</span> <span class="nx">els</span><span class="p">.</span><span class="nx">not</span><span class="p">(</span><span class="nx">oEls</span><span class="p">);</span></div><div class="line" id="LC108">&nbsp;</div><div class="line" id="LC109">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Set elements to the latest set of matched elements</span></div><div class="line" id="LC110">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="nx">elements</span> <span class="o">=</span> <span class="nx">els</span><span class="o">;</span></div><div class="line" id="LC111">&nbsp;</div><div class="line" id="LC112">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC113">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Bind events to newly matched elements</span></div><div class="line" id="LC114">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">nEls</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">type</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">fn</span><span class="p">);</span></div><div class="line" id="LC115">&nbsp;</div><div class="line" id="LC116">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Unbind events to elements no longer matched</span></div><div class="line" id="LC117">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="nx">oEls</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span></div><div class="line" id="LC118">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="nx">oEls</span><span class="o">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">i</span><span class="o">,</span> <span class="nx">el</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC119">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span> <span class="nx">$</span><span class="p">.</span><span class="nx">inArray</span><span class="p">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">els</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">0</span> <span class="p">)</span></div><div class="line" id="LC120">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">event</span><span class="p">.</span><span class="nx">remove</span><span class="p">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">query</span><span class="p">.</span><span class="nx">type</span><span class="o">,</span> <span class="nx">query</span><span class="p">.</span><span class="nx">fn</span><span class="p">);</span></div><div class="line" id="LC121">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">});</span></div><div class="line" id="LC122">&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class="line" id="LC123">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">else</span> <span class="p">{</span></div><div class="line" id="LC124">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Call the first function for newly matched elements</span></div><div class="line" id="LC125">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">nEls</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class="line" id="LC126">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">query</span><span class="p">.</span><span class="nx">fn</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class="line" id="LC127">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">});</span></div><div class="line" id="LC128">&nbsp;</div><div class="line" id="LC129">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Call the second function for elements no longer matched</span></div><div class="line" id="LC130">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">fn2</span> <span class="o">&amp;&amp;</span> <span class="nx">oEls</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="p">)</span></div><div class="line" id="LC131">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="nx">oEls</span><span class="o">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">i</span><span class="o">,</span> <span class="nx">el</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC132">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span> <span class="nx">$</span><span class="p">.</span><span class="nx">inArray</span><span class="p">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">els</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">0</span> <span class="p">)</span></div><div class="line" id="LC133">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">query</span><span class="p">.</span><span class="nx">fn2</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></div><div class="line" id="LC134">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">});</span></div><div class="line" id="LC135">&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class="line" id="LC136">&nbsp;&nbsp;<span class="p">}</span></div><div class="line" id="LC137"><span class="p">};</span></div><div class="line" id="LC138">&nbsp;</div><div class="line" id="LC139"><span class="nx">$</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="o">,</span> <span class="p">{</span></div><div class="line" id="LC140">&nbsp;&nbsp;<span class="nx">guid</span><span class="o">:</span> <span class="mi">0</span><span class="o">,</span></div><div class="line" id="LC141">&nbsp;&nbsp;<span class="nx">queries</span><span class="o">:</span> <span class="p">[]</span><span class="o">,</span></div><div class="line" id="LC142">&nbsp;&nbsp;<span class="nx">queue</span><span class="o">:</span> <span class="p">[]</span><span class="o">,</span></div><div class="line" id="LC143">&nbsp;&nbsp;<span class="nx">running</span><span class="o">:</span> <span class="kc">false</span><span class="o">,</span></div><div class="line" id="LC144">&nbsp;&nbsp;<span class="nx">timeout</span><span class="o">:</span> <span class="kc">null</span><span class="o">,</span></div><div class="line" id="LC145">&nbsp;</div><div class="line" id="LC146">&nbsp;&nbsp;<span class="nx">checkQueue</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class="line" id="LC147">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">running</span> <span class="o">&amp;&amp;</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queue</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC148">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="nx">length</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queue</span><span class="p">.</span><span class="nx">length</span><span class="o">;</span></div><div class="line" id="LC149">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Run each Live Query currently in the queue</span></div><div class="line" id="LC150">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">while</span> <span class="p">(</span> <span class="nx">length</span><span class="o">--</span> <span class="p">)</span></div><div class="line" id="LC151">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queries</span><span class="p">[</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queue</span><span class="p">.</span><span class="nx">shift</span><span class="p">()</span> <span class="p">].</span><span class="nx">run</span><span class="p">();</span></div><div class="line" id="LC152">&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class="line" id="LC153">&nbsp;&nbsp;<span class="p">}</span><span class="o">,</span></div><div class="line" id="LC154">&nbsp;</div><div class="line" id="LC155">&nbsp;&nbsp;<span class="nx">pause</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class="line" id="LC156">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Don&#39;t run anymore Live Queries until restarted</span></div><div class="line" id="LC157">&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">running</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span></div><div class="line" id="LC158">&nbsp;&nbsp;<span class="p">}</span><span class="o">,</span></div><div class="line" id="LC159">&nbsp;</div><div class="line" id="LC160">&nbsp;&nbsp;<span class="nx">play</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class="line" id="LC161">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Restart Live Queries</span></div><div class="line" id="LC162">&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">running</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span></div><div class="line" id="LC163">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Request a run of the Live Queries</span></div><div class="line" id="LC164">&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">run</span><span class="p">();</span></div><div class="line" id="LC165">&nbsp;&nbsp;<span class="p">}</span><span class="o">,</span></div><div class="line" id="LC166">&nbsp;</div><div class="line" id="LC167">&nbsp;&nbsp;<span class="nx">registerPlugin</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class="line" id="LC168">&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span> <span class="nx">arguments</span><span class="o">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">i</span><span class="o">,</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC169">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Short-circuit if the method doesn&#39;t exist</span></div><div class="line" id="LC170">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">$</span><span class="p">.</span><span class="nx">fn</span><span class="p">[</span><span class="nx">n</span><span class="p">])</span> <span class="k">return</span><span class="o">;</span></div><div class="line" id="LC171">&nbsp;</div><div class="line" id="LC172">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Save a reference to the original method</span></div><div class="line" id="LC173">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="nx">old</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">fn</span><span class="p">[</span><span class="nx">n</span><span class="p">];</span></div><div class="line" id="LC174">&nbsp;</div><div class="line" id="LC175">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Create a new method</span></div><div class="line" id="LC176">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">fn</span><span class="p">[</span><span class="nx">n</span><span class="p">]</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class="line" id="LC177">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Call the original method</span></div><div class="line" id="LC178">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="nx">old</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="p">);</span></div><div class="line" id="LC179">&nbsp;</div><div class="line" id="LC180">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Request a run of the Live Queries</span></div><div class="line" id="LC181">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">run</span><span class="p">();</span></div><div class="line" id="LC182">&nbsp;</div><div class="line" id="LC183">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Return the original methods result</span></div><div class="line" id="LC184">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">return</span> <span class="nx">r</span><span class="o">;</span></div><div class="line" id="LC185">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class="line" id="LC186">&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">});</span></div><div class="line" id="LC187">&nbsp;&nbsp;<span class="p">}</span><span class="o">,</span></div><div class="line" id="LC188">&nbsp;</div><div class="line" id="LC189">&nbsp;&nbsp;<span class="nx">run</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC190">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="nx">id</span> <span class="o">!=</span> <span class="kc">undefined</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC191">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Put the particular Live Query in the queue if it doesn&#39;t already exist</span></div><div class="line" id="LC192">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span> <span class="nx">$</span><span class="p">.</span><span class="nx">inArray</span><span class="p">(</span><span class="nx">id</span><span class="o">,</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queue</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">0</span> <span class="p">)</span></div><div class="line" id="LC193">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queue</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">id</span> <span class="p">);</span></div><div class="line" id="LC194">&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class="line" id="LC195">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">else</span></div><div class="line" id="LC196">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Put each Live Query in the queue if it doesn&#39;t already exist</span></div><div class="line" id="LC197">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queries</span><span class="o">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC198">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span> <span class="nx">$</span><span class="p">.</span><span class="nx">inArray</span><span class="p">(</span><span class="nx">id</span><span class="o">,</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queue</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">0</span> <span class="p">)</span></div><div class="line" id="LC199">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queue</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">id</span> <span class="p">);</span></div><div class="line" id="LC200">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">});</span></div><div class="line" id="LC201">&nbsp;</div><div class="line" id="LC202">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Clear timeout if it already exists</span></div><div class="line" id="LC203">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">timeout</span><span class="p">)</span> <span class="nx">clearTimeout</span><span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">timeout</span><span class="p">);</span></div><div class="line" id="LC204">&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Create a timeout to check the queue and actually run the Live Queries</span></div><div class="line" id="LC205">&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">timeout</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">checkQueue</span><span class="o">,</span> <span class="mi">20</span><span class="p">);</span></div><div class="line" id="LC206">&nbsp;&nbsp;<span class="p">}</span><span class="o">,</span></div><div class="line" id="LC207">&nbsp;</div><div class="line" id="LC208">&nbsp;&nbsp;<span class="nx">stop</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC209">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="nx">id</span> <span class="o">!=</span> <span class="kc">undefined</span><span class="p">)</span></div><div class="line" id="LC210">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Stop are particular Live Query</span></div><div class="line" id="LC211">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queries</span><span class="p">[</span> <span class="nx">id</span> <span class="p">].</span><span class="nx">stop</span><span class="p">();</span></div><div class="line" id="LC212">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">else</span></div><div class="line" id="LC213">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">// Stop all Live Queries</span></div><div class="line" id="LC214">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queries</span><span class="o">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span></div><div class="line" id="LC215">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">queries</span><span class="p">[</span> <span class="nx">id</span> <span class="p">].</span><span class="nx">stop</span><span class="p">();</span></div><div class="line" id="LC216">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">});</span></div><div class="line" id="LC217">&nbsp;&nbsp;<span class="p">}</span></div><div class="line" id="LC218"><span class="p">});</span></div><div class="line" id="LC219">&nbsp;</div><div class="line" id="LC220"><span class="c">// Register core DOM manipulation methods</span></div><div class="line" id="LC221"><span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">registerPlugin</span><span class="p">(</span><span class="s1">&#39;append&#39;</span><span class="o">,</span> <span class="s1">&#39;prepend&#39;</span><span class="o">,</span> <span class="s1">&#39;after&#39;</span><span class="o">,</span> <span class="s1">&#39;before&#39;</span><span class="o">,</span> <span class="s1">&#39;wrap&#39;</span><span class="o">,</span> <span class="s1">&#39;attr&#39;</span><span class="o">,</span> <span class="s1">&#39;removeAttr&#39;</span><span class="o">,</span> <span class="s1">&#39;addClass&#39;</span><span class="o">,</span> <span class="s1">&#39;removeClass&#39;</span><span class="o">,</span> <span class="s1">&#39;toggleClass&#39;</span><span class="o">,</span> <span class="s1">&#39;empty&#39;</span><span class="o">,</span> <span class="s1">&#39;remove&#39;</span><span class="p">);</span></div><div class="line" id="LC222">&nbsp;</div><div class="line" id="LC223"><span class="c">// Run Live Queries when the Document is ready</span></div><div class="line" id="LC224"><span class="nx">$</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="nx">$</span><span class="p">.</span><span class="nx">livequery</span><span class="p">.</span><span class="nx">play</span><span class="p">();</span> <span class="p">});</span></div><div class="line" id="LC225">&nbsp;</div><div class="line" id="LC226"><span class="p">})(</span><span class="nx">jQuery</span><span class="p">);</span></div></pre></div>
            
          </td>
        </tr>
      </table>
    
  </div>


      </div>
    </div>
    
  


  </div>

      
      
      <div class="push"></div>
    </div>
    
    <div id="footer">
      <div class="site">
        <div class="info">
          <div class="links">
            <a href="http://github.com/blog/148-github-shirts-now-available">Shirts</a> |
            <a href="http://github.com/blog">Blog</a> |
            <a href="http://support.github.com/">Support</a> |
            <a href="http://github.com/training">Training</a> |
            <a href="http://github.com/contact">Contact</a> |
            <a href="http://groups.google.com/group/github/">Google Group</a> |
            <a href="http://github.com/guides/the-github-api">API</a> |
            <a href="http://twitter.com/github">Status</a>
          </div>
          <div class="company">
            <span id="_rrt" title="0.22084s from xc88-s00009">GitHub</span>
            is <a href="http://logicalawesome.com/">Logical Awesome</a> &copy;2009 | <a href="/site/terms">Terms of Service</a> | <a href="/site/privacy">Privacy Policy</a>
          </div>
        </div>
        <div class="sponsor">
          <a href="http://engineyard.com"><img src="/images/modules/footer/engine_yard_logo.png" alt="Engine Yard" /></a>
          <div>
            Hosting provided by our<br /> partners at Engine Yard
          </div>
        </div>
      </div>
    </div>
    
    <div id="coming_soon" style="display:none;">
      This feature is coming soon.  Sit tight!
    </div>

    
        <script type="text/javascript">
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
    </script>
    <script type="text/javascript">
    var pageTracker = _gat._getTracker("UA-3769691-2");
    pageTracker._initData();
    pageTracker._trackPageview();
    </script>

    
  </body>
</html>


