0

我只是第一次搞乱ajax。

目前我正在根据 url 从文本文件中加载文本。

这是我的做法:

var home_url = "blahblah/index.html#home";
var test_url = "blahblah/index.html#test";

$(document).on("click",".ajax_load",function(){
    if (location.href === home_url) {
        $("#main").load("src/home.txt");
    };
    if (location.href === test_url) {
        $("#main").load("src/test.txt");
    };  
});

这可行,但是直到我第二次按下按钮后才会加载内容。更容易理解:

button press -> 2nd button press -> content loaded

我认为发生这种情况是因为我的代码直到第一次按下后才注册 url,然后if语句检查是否需要加载内容,但这只会在再次单击按钮之前触发。

谁能帮我一键加载内容?

谢谢。

4

1 回答 1

3

问题是,链接在事件触发后更改了“location.href”。因此,第一次单击时,将执行错误(或没有)ajax-load 代码,然后更改 URL,因此第二次单击检查正确的 URL。

所以我建议的解决方案是:不要检查位置 url,而是检查您在链接中指定的 url:

$('.ajax_load').bind('click', this, function(){
    if (this.href === home_url) {
        $("#main").load("src/home.txt");
    };
    if (this.href === test_url) {
        $("#main").load("src/test.txt");
    };
});

注意:“this.href”总是包含完整的 URL,即使链接是用简单的锚指定的:

<a href="#home">home</a>
于 2012-09-19T20:49:40.567 回答