2014-09-13 3 views
1

링크를 클릭 한 후 페이지를 리디렉션하려고하면 기능이 작동하지 않습니다. 왜냐하면 내가 클릭 할 때, 작업 수행을 기다리지 않고 페이지가 즉시 리디렉션되기 때문입니다. 내 코드는 다음과 같습니다.jQuery의 클릭 이벤트에서 페이지 리디렉션이 작동하지 않습니다.

var site = 'http://www.sitename.com';  
$(document).ready(function() { 
     $('#messages').on('click', '.read', function() { 

      $.cookie("show_messages", "false", { expires: 120, path: '/' }); 

      $('body').fadeOut(1000, function() { 
       window.location.href = site + "/home-page"; 
      }); 
      return false; 
     }); 
    }); 

리디렉션 페이지보다 쿠키를 설정하고 싶지만 관리하지 않았습니다. 당신이 나를 도울 수? 친절 ...

+0

표시된 코드는 리디렉션하기 전에 쿠키를 설정해야합니다. 다른 오류가 발생하여 코드가 차단 된 것 같습니다. 콘솔을 확인하십시오. 'site'가 정의되어 있습니까? – charlietfl

+0

@charlietfl - 사이트 값이 위에 남아 있습니다. –

+0

그래서 콘솔에 오류가 없습니까? 페이지로드시'# messages '가 존재합니까? '읽기'가 적절한 수업입니까? 표시된 코드에 아무런 문제가 없으므로 문제가 다른 곳에서 발생했습니다 – charlietfl

답변

0

클릭 기능에 문제가있는 것 같습니다. 그 때문에 결코 return false; 문에 표시되지 않습니다. jsFiddle에서 코드를 재현하려고 시도했지만 나에게 그것은 $.cookie에서 깨졌습니다. 그 방법을 지원하는 플러그인을 포함하셨습니까? jQuery의 일부가 아닙니다.

는 제 다음 코드로 진행,이 같은 문제를 방지 이벤트를 취소하려면 : event.preventDefault()

$(document).ready(function() { 
    $('#messages').on('click', '.read', function (event) { 
     event.preventDefault(); 

     $.cookie("show_messages", "false", { expires: 120, path: '/' }); 

     $('body').fadeOut(1000, function() { 
      window.location.href = site + "/home-page"; 
     }); 
    }); 
}); 

당신은 return 아무것도하지 않고 클릭 이벤트를 방지 할 수 있습니다.

+0

쿠키 플러그인 (https://github.com/carhartl/jquery-cookie)을 사용하고 있습니다. 그러나 window.location.href를 주석 태그에 넣으면 쿠키가 설정됩니다. –

+0

'event.preventDefault()'와'false false'가 같은 일을하고 있습니까? 둘 다 문제를 슬쩍하지 않았다. –

관련 문제