2010-03-15 11 views
0

저는 Jquery를 처음 접했고 마지막 "다음"버튼에서 페이지 리디렉션을 사용하여 수동 슬라이드 쇼를 구현하고자합니다.Jquery를 사용한 마지막 슬라이드 쇼 요소의 리디렉션

CSS-Classes로 마지막 슬라이드 요소를 감지 한 다음 클래스를 다음 슬라이드에 추가하여 전체 슬라이드 쇼의 마지막 다음 버튼임을 선언합니다.

내 코드의 절반이 작동합니다. - 마지막 Slide-Element로 이동하면 Jquery는 클래스에 "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); 
    }); 
});