2014-09-13 57 views
1

當我點擊一個鏈接後嘗試重定向頁面時,功能在Click事件下不起作用。因爲當我點擊時,頁面立即重定向而不用等待執行任務。我的代碼在這裏:頁面重定向在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; 
     }); 
    }); 

我想設置一個cookie而不是重定向頁面,但我沒有管理它。你可以幫幫我嗎?親切的問候...

+0

顯示的代碼應該在重定向之前設置好cookie。聽起來像你有其他錯誤被拋出並阻止你的代碼。檢查控制檯。什麼是「網站」定義? – charlietfl 2014-09-13 14:09:25

+0

@charlietfl - 網站價值保持在上面。 – 2014-09-13 14:17:19

+0

那麼在控制檯中沒有錯誤?在頁面加載時是否存在'#messages'? 「讀」是否合適?顯示的代碼沒有問題,所以問題在別處 – charlietfl 2014-09-13 14:36:42

回答

0

看起來你的點擊功能有問題,因爲它永遠不會去return false;聲明。我試圖在jsFiddle中重現你的代碼,對於我來說它在$.cookie上斷了,你確定你已經包含了一個支持該方法的插件嗎?它不是jQuery的一部分。

爲了防止這樣的問題,取消事件第一和然後繼續代碼:

$(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"; 
     }); 
    }); 
}); 

隨着event.preventDefault()您防止點擊事件,而無需任何return

+0

我正在使用Cookie插件(https://github.com/carhartl/jquery-cookie)。但是當我將window.location.href放入註釋標記中時,cookie就被設置了。 – 2014-09-13 14:34:20

+0

'event.preventDefault()'和'return false'是否一樣?他們兩人都沒有解決問題。 – 2014-09-13 19:48:23