JavaScript
Article
By Sam Deering

Display Blog Ads Spots in Random Order

By Sam Deering
Help us help you! You'll get a... FREE 6-Month Subscription to SitePoint Premium Plus you'll go in the draw to WIN a new Macbook SitePoint 2017 Survey Yes, let's Do this It only takes 5 min

To make it fair for everyone who has signed up a jQuery ad on the blog I have wrote a nifty little function to load the ads in a random order. There is also a shuffle button as a demo for creating a random shuffle on the ad spots manually. This function could be made more customisable but does the job.

Try it out for yourself (look at the right sidebar!).

jquery-blog-ads

--ADVERTISEMENT--

The code

//Function to display ads on the jQuery Blog and shuffle
(function($)
{
   var displayAds = {

       ads: {
           1: {
                title: "jQuery UI Widgets for PC, Mobile and Touch devices",
                href: "http://www.jqwidgets.com",
                img: "jqwidgets.png"
           },
           2: {
                title: "jQuery Chop Slider 2.0 - The most eye catching image slider on the internet!",
                href: "http://www.idangero.us/cs/",
                img: "idangerous.jpg"
           },
           3: {
                title: "Sauce Labs - Online Cross Browser Testing",
                href: "http://www.saucelabs.com/scouthome?utm_source=banner&utm_medium=flat&utm_campaign=all+all+banner+jquery4u",
                img: "sauce-labs.jpg"
           },
           4: {
                title: "Diamond Slider - Ken Burns Effect & Unlimited Transitions",
                href: "http://www.diamond.billykids-lab.net/",
                img: "diamond-slider.jpg"
           },
           5: {
                title: "AJAX Zoom - jQuery Dynamic 2d/360 Degrees Zoom with ipad support.",
                href: "http://www.ajax-zoom.com",
                img: "ajax-zoom.jpg"
           }
       },

       signupAd: {
           title: "Advertise here",
           href: "http://www.jquery4u.com/advertise/"
       },

       shuffleAds: function(arr)
       {
          for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
          return arr;
       },

       load: function()
       {
           $('#shuffle-ads').hide();
           var adContainer = $('#jq4u-sidebar-ads').empty(), adsArray = Array();

           /* construct ads */
           $.each(this.ads, function(i,v)
           {
                adsArray.push('
' + v.title + '
'); }); /* shuffle ads in random order */ adsArray = this.shuffleAds(adsArray); /* output ads */ $.each(adsArray, function(i,v) { adContainer.append(v); }); /* add the signup ad */ adContainer.append('
' + this.signupAd.title + '
'); /* show shuffle button */ adContainer.append('Shuffle'); $('#shuffle-ads').live('click', function(e) { e.preventDefault(); displayAds.load(); }); $('#shuffle-ads').show(); } } $(document).ready(function() { displayAds.load(); }); })(jQuery);
Login or Create Account to Comment
Login Create Account
Recommended
Sponsors
Get the most important and interesting stories in tech. Straight to your inbox, daily.Is it good?