I've got my code working (adapted of Karl Swedberg's Scroll Up News
Reader) http://docs.jquery.com/Tutorials:Scroll_Up_Headline_Reader,
but I'm sure there's a cleaner (more dynamic) way of checking where I
am in the loop so that I don't have to do all the individual click
checks
        $("#topStoryButtons li a:eq(0)").click(function() {
        $("#topStoryButtons li a:eq(1)").click(function() {
        $("#topStoryButtons li a:eq(2)").click(function() {
        $("#topStoryButtons li a:eq(3)").click(function() {

I think I'm just looking for a way to capture the instance of the link
I'm clicking and pass that variable on. Any help appreciated - Steve

/*====
 * rotator
 *================================================ */

var headline_count;
var headline_interval;
var old_headline = 0;
var current_headline = 0;

$(document).ready(function(){
        $("div#topStories #topStoryButtons").addClass("active");
        headline_count = $("div.topStoryItem").size();
        $("div.topStoryItem:eq("+current_headline+")").css('left','0');
        $("#topStoryButtons li a:eq("+current_headline
+")").addClass('activeControls');

        headline_interval = setInterval(headline_rotate,7000); //time in
milliseconds

        $("#topStoryButtons li a:eq(0)").click(function() {
                selected_headline = 0;
                $("div.topStoryItem:eq(" + current_headline + 
")").animate({left:
-622},"slow", function() {
                        $(this).css('left','622px');
                });
                $("#topStoryButtons li a:eq(" + current_headline +
")").removeClass('activeControls');
                $("#topStoryButtons li a:eq(0)").addClass('activeControls');
                $("div.topStoryItem:eq(0)").show().animate({left: 0},"slow");
                current_headline = selected_headline;
                clearInterval(headline_interval);
                return false;
        });
        $("#topStoryButtons li a:eq(1)").click(function() {
                selected_headline = 1;
                $("div.topStoryItem:eq(" + current_headline + 
")").animate({left:
-622},"slow", function() {
                        $(this).css('left','622px');
                });
                $("#topStoryButtons li a:eq(" + current_headline +
")").removeClass('activeControls');
                $("#topStoryButtons li a:eq(1)").addClass('activeControls');
                $("div.topStoryItem:eq(1)").show().animate({left: 0},"slow");
                current_headline = selected_headline;
                clearInterval(headline_interval);
                return false;
        });
        $("#topStoryButtons li a:eq(2)").click(function() {
                selected_headline = 2;
                $("div.topStoryItem:eq(" + current_headline + 
")").animate({left:
-622},"slow", function() {
                        $(this).css('left','622px');
                });
                $("#topStoryButtons li a:eq(" + current_headline +
")").removeClass('activeControls');
                $("#topStoryButtons li a:eq(2)").addClass('activeControls');
                $("div.topStoryItem:eq(2)").show().animate({left: 0},"slow");
                current_headline = selected_headline;
                clearInterval(headline_interval);
                return false;
        });
        $("#topStoryButtons li a:eq(3)").click(function() {
                selected_headline = 3;
                $("div.topStoryItem:eq(" + current_headline + 
")").animate({left:
-622},"slow", function() {
                        $(this).css('left','622px');
                });
                $("#topStoryButtons li a:eq(" + current_headline +
")").removeClass('activeControls');
                $("#topStoryButtons li a:eq(3)").addClass('activeControls');
                $("div.topStoryItem:eq(3)").show().animate({left: 0},"slow");
                current_headline = selected_headline;
                clearInterval(headline_interval);
                return false;
        });
});

function headline_rotate() {
        current_headline = (old_headline + 1) % headline_count;
        $("div.topStoryItem:eq(" + old_headline + ")").animate({left:
-622},"slow", function() {
                $(this).css('left','622px');
        });
        $("#topStoryButtons li a:eq(" + old_headline +
")").removeClass('activeControls');
        $("#topStoryButtons li a:eq(" + current_headline +
")").addClass('activeControls');
        $("div.topStoryItem:eq(" + current_headline +
")").show().animate({left: 0},"slow");
        old_headline = current_headline;
}

Reply via email to