2011-04-19 80 views
2

我有這樣的代碼jQuery的.load()沒有得到可變

$(document).ready(function() { 
    $('a').click(function(e) { 
     e.preventDefault(); 
     url = $(this).attr('href'); 
     $("body").load(href); 
    }); 
}); 

但它不工作。沒有加載。唯一可行的是e.preventdefault()

我做錯了什麼?

+0

怎麼樣把e.preventDefault() 「負載」 之後?另外,你是否看到「href」指向的服務器上發生了什麼? – 2011-04-19 16:52:28

+0

你爲什麼要用XmlHttpRequest來做到這一點? 'a'元素已經做到了這一點。 – 2011-04-19 16:56:31

+0

@ElGuapo:'href'指向哪裏?這是一個未定義的變量。 :) – 2011-04-19 16:57:55

回答

6
$("body").load(href); 

應該是:

$("body").load(url); 

或者你可以破除變量徹底:

$("body").load(this.href); 
+0

yup!謝謝!我很愚蠢:) – cmplieger 2011-04-19 16:53:54

+0

$(「body」)。load(this.href);是最乾淨的方式! – 2011-04-19 17:03:00

0

您在(this).attr('href');之前缺少$,並且還會爲您的加載函數調用使用值url。

$(document).ready(function() { 
    $('a').click(function(e) { 
      e.preventDefault(); 
      url = $(this).attr('href'); 
      $("body").load(url); 
    }); 
}); 
+0

糾正了它仍然不起作用:s – cmplieger 2011-04-19 16:52:55

+1

您可以使用this.href而不是$(this).attr('href')來保存創建另一個jQuery對象。 – amustill 2011-04-19 16:53:24

+0

@SnipperSpace:請提供更新的答案。 – Chandu 2011-04-19 16:59:41

0

已分配的href ATTR變量稱爲URL,然後試圖使用href作爲變量。

不好:

url = $(this).attr('href');  
$("body").load(href); 

好:

url = $(this).attr('href');  
$("body").load(url);