2010-03-15 35 views
0

我很新的jquery,并希望实现一个手动幻灯片页面重定向上的“下一个”按钮。重定向在最后一个幻灯片显示元素与jquery

我用CSS-Classes检测最后一个Slide-Element,然后我想添加一个Class到下一个按钮来声明它是整个幻灯片的最后一个按钮。

我的代码的一半工作:) - 如果我导航到最后一个幻灯片元素,Jquery将类“最后”添加到按钮,如果我点击与此类的按钮,我重定向到下一页 - 这就是我想要的。 但是,如果我导航到最后一个幻灯片元素,然后单击几次“prev”按钮,然后再次按下下一个按钮,虽然类“last”被删除,但我立即重定向。

在此先感谢和抱歉我的英语不好。

这里是我的代码:

$(document).ready(function(){ 

$("#image_nav a:first").attr('id', 'firstSlide'); 
$("#image_nav a:last").attr('id', 'lastSlide'); 

$(".dritte_ebene li:first").attr('id', 'firstNavi'); 
$(".dritte_ebene li:last").attr('id', 'lastNavi'); 

//Redirect to the next page 
$("a").click(function(){      
if ($("#lastSlide").hasClass("activeSlide")) { 
$("#weiter").addClass("last"); 
$('.slide').cycle('pause'); 
    $(".last").click(function(){ 
    window.location.replace("[+PJN_next+]");  
    }); 
} 
});  

//Remove "last" if prev is clicked 
$('#zurueck').click(function(){ 
$("#weiter").removeClass("last"); 
}); 


}); 

回答

0

你忘了取消绑定添加点击功能。因此,下次您点击.last时,将执行重定向。将您的代码更改为此。允许您仅解除重定向功能。

var lastHandler = function() { 
    window.location.replace("[+PJN_next+]"); 
}; 

$(document).ready(function() { 
    $("#image_nav a:first").attr('id', 'firstSlide'); 
    $("#image_nav a:last").attr('id', 'lastSlide'); 

    $(".dritte_ebene li:first").attr('id', 'firstNavi'); 
    $(".dritte_ebene li:last").attr('id', 'lastNavi'); 

    //Redirect to the next page 
    $("a").click(function() { 
     if ($("#lastSlide").hasClass("activeSlide")) { 
      $("#weiter").addClass("last").click(lastHandler); 
      $('.slide').cycle('pause'); 
     } 
    }); 

    //Remove "last" if prev is clicked 
    $('#zurueck').click(function() { 
     $(".last").removeClass("last").unbind('click', lastHandler); 
    }); 
});