2011-04-19 42 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);