0

我对 jQuery 非常陌生,并且正在 jQuery 中制作一个历史 API-ish 脚本,因此只有新页面中所需的信息才会在点击时加载。问题是我不知道如何将 var 放在处理程序中,至少我认为它称为处理程序。这绝对是一件简单的事情。

 $("a#click").click(function() {
 var addressValue = $(this).attr("href");

  $("#main").load("addressValue #load");

 return false;
});
4

2 回答 2

3

如果您使用:

 $("a#click").click(function() {
 var addressValue = this.href;

  $("#main").load(addressValue + " #load");

 return false;
});

它应该工作;问题是您将变量放入字符串中,因此它被评估为变量名,而不是与' #load'字符串连接的变量。

此外,href避免调用 jQuery 会稍微快一些,而只需使用本机 DOM 方法(这是一个微优化,但只是稍微便宜一些)。

值得注意的是,this.href确实(有时是有问题的)检索由任何值暗示的绝对路径,严格来说,在href属性内部,包括域。而 jQuery 方法只是检索属性中的任何内容,因此:

<a href="/help/contact.html">contact page</a>:
this.href            : "http://subdomain.example.com/help/contact.html"
$(this).attr('href') : "/help/contact.html"
于 2012-08-12T15:52:44.303 回答
1
$("a#click").on('click', function() {
    var addressValue = $(this).attr("href");
    $("#main").load(addressValue+" #load");
    return false;
});
于 2012-08-12T15:52:32.927 回答