2013-12-13 116 views
0

在當地工作,所以我不能給你任何鏈接,但我會嘗試解釋情況。event.preventDefault似乎不工作....爲什麼?

我正在做一個wordpress網站,並且我正在創建ajax請求,以使網站上的任何內部鏈接都會加載到主頁面的主要內容區域。

下面是我使用

jQuery(document).ready(function($) { 
    //individua il container in cui sarà caricata la pagina 
    var $mainContent = $("#main-wrapper"), 
     //individua l'url "madre" 
     siteUrl = "http://" + top.location.host.toString(), 
     url = ''; 

    $(document).on("a[href^='"+siteUrl+"']:not([href*=/wp-admin/]):not([href*=/wp-login.php]):not([href$=/feed/])", "click", function(event) { 
     location.hash = this.pathname; 
     if (event.preventDefault) { 
      event.preventDefault(); 
     } else { 
      event.returnValue = false; 
     } 
    }); 

    $(window).bind('hashchange', function(){ 
     url = window.location.hash.substring(1); 
     if (!url) { 
      return; 
     } 
     url = url + " #content"; 
     $mainContent.animate({opacity: "0.1"}).html('<p>Please wait...</>').load(url, function() { 
      $mainContent.animate({opacity: "1"}); 
     }); 
    }); 

    $(window).trigger('hashchange'); 
}) 

幾句話整個腳本,你可以看到我是如何試圖「禁用」的鏈接:我想避免鏈路的負載到外部頁面

,我收到在控制檯中的錯誤是這樣的:

event.returnValue已被棄用。請改用標準的 event.preventDefault()。

我該如何解決?

+5

只是使用'event.preventDefault();'是歸 –

+0

'返回FALSE'? – j08691

+0

@ A.Wolff mmmmhhh,但頁面的加載不會被阻止:發生。我猜這是一個錯誤... – marco

回答

5

相信事件類型應該先在你的on綁定,然後選擇:

$(document).on("click", "a[...])", function(event) ... 
+1

哇,好趕! –

+0

是的!對!然後,我又在「:not([href * =/wp-admin /])中捕獲錯誤:not([href * =/wp-login.php]):not([href $ =/feed /] )「(我不知道這個錯誤是什麼,但沒關係,現在我只想看看我的ajax函數的效果)。有用。謝謝! – marco