title: jQuery Twitter Feed Not Displaying on Static Website
body: <p>I am trying to integrate a Twitter feed on my website, but with the following setup my feed is stuck showing "Loading Tweets..."</p>
  
  <p>Here is the Script loaded directly on the index page:</p>
  
  <pre><code>&lt;script src="js/libs/jquery.twitter.js" type="text/javascript"&gt;&lt;/script&gt;
  
  &lt;script src="http://twitter.com/javascripts/blogger.js" type="text/javascript"&gt;&lt;/script&gt;
  
  &lt;script type="text/javascript"&gt;
  $(document).ready(function() {
          $("#twitter").getTwitter({
              userName: "username",
              numTweets: 3,
              loaderText: "Loading tweets...",
              slideIn: true,
              slideDuration: 750,
              showHeading: true,
              headingText: "Latest Tweets",
              showProfileLink: false,
              showTimestamp: false,
              target: "_top"
      });
  });
  &lt;/script&gt;
  &lt;script&gt;
  if ($) {    //check if $ is defined - but this check results in an error!
  $("#twitter").click (function () {});    //my jQuery code here
  }
  &lt;/script&gt;
  </code></pre>
  
  <p>And here is the code inside of the jquery.twitter.js file:</p>
  
  <pre><code>   (function($) {
      /*
          jquery.twitter.js v1.5
          Last updated: 08 July 2009
  
          Created by Damien du Toit
          http://coda.co.za/blog/2008/10/26/jquery-plugin-for-twitter
  
          Licensed under a Creative Commons Attribution-Non-Commercial 3.0 Unported License
          http://creativecommons.org/licenses/by-nc/3.0/
  
          This code is modified by http://plugidea.com/iweb/
          Updated date: Mar 10, 2011
      */
  
      $.fn.getTwitter = function(options) {
  
          $.fn.getTwitter.defaults = {
              userName: null,
              numTweets: 5,
              loaderText: "Loading tweets...",
              slideIn: true,
              slideDuration: 750,
              showHeading: true,
              headingText: "Latest Tweets",
              showProfileLink: true,
              showTimestamp: true,
              target: "_blank"
          };
  
          var o = $.extend({}, $.fn.getTwitter.defaults, options);
  
          return this.each(function() {
              var c = $(this);
  
              // hide container element, remove alternative content, and add class
              c.hide().empty().addClass("twitted");
  
              // add heading to container element
              if (o.showHeading) {
                  c.append("&lt;h2&gt;"+o.headingText+"&lt;/h2&gt;");
              }
  
              // add twitter list to container element
              var twitterListHTML = "&lt;ul id=\"twitter_update_list\"&gt;&lt;li&gt;&lt;/li&gt;&lt;/ul&gt;";
              c.append(twitterListHTML);
  
              var tl = $("#twitter_update_list");
  
              // hide twitter list
              tl.hide();
  
              // add preLoader to container element
              var preLoaderHTML = $("&lt;p class=\"preLoader\"&gt;"+o.loaderText+"&lt;/p&gt;");
              c.append(preLoaderHTML);
  
              // add Twitter profile link to container element
              if (o.showProfileLink) {
                  var profileLinkHTML = "&lt;p class=\"profileLink\"&gt;&lt;a href=\"http://twitter.com/"+o.userName+"\"&gt;http://twitter.com/"+o.userName+"&lt;/a&gt;&lt;/p&gt;";
                  c.append(profileLinkHTML);
              }
  
              // show container element
              c.show();
  
              //$.getScript("http://twitter.com/javascripts/blogger.js");
              $.getScript("http://twitter.com/statuses/user_timeline/"+o.userName+".json?callback=twitterCallback2&amp;count="+o.numTweets, function() {
                  // remove preLoader from container element
                  $(preLoaderHTML).remove();
  
                  // remove timestamp and move to title of list item
                  tl.find("li").each(function() {
                      var timestampHTML = $(this).children("a");
                      var timestamp = timestampHTML.html();
                      if (!o.showTimestamp) {
                          timestampHTML.remove();
                          $(this).attr("title", timestamp);
                      }
                      $('a',this).attr("target", o.target);
                  });
  
                  // show twitter list
                  if (o.slideIn) {
                      // a fix for the jQuery slide effect
                      // Hat-tip: http://blog.pengoworks.com/index.cfm/2009/4/21/Fixing-jQuerys-slideDown-effect-ie-Jumpy-Animation
                      var tlHeight = tl.data("originalHeight");
  
                      // get the original height
                      if (!tlHeight) {
                          tlHeight = tl.show().height();
                          tl.data("originalHeight", tlHeight);
                          tl.hide().css({height: 0});
                      }
  
                      tl.show().animate({height: tlHeight}, o.slideDuration);
                  }
                  else {
                      tl.show();
                  }
  
                  // add unique class to first list item
                  tl.find("li:first").addClass("firstTweet");
  
                  // add unique class to last list item
                  tl.find("li:last").addClass("lastTweet");
              });
          });
      };
  })(jQuery);
  </code></pre>
  
  <p>I used an out of the box solution, as I'm fairly new to Javascript and jQuery. I replaced the Twitter username with the words "username" for security.</p>
  
  <p>Any help is greatly appreciated.</p>