2

我对 JS 和 jQuery 还很陌生,而且我刚刚掌握了基本的 JS,可以在 jQuery 中尝试一些东西。因此,我在这里尝试做的是在单击主导航中的链接时阻止页面加载(理想情况下会使用 ajax 加载页面)。

所以到目前为止这是我的脚本,基本上没有任何工作......在 Chrome 中,警报显示并显示被点击的链接,但 Firefox4 似乎完全忽略了我的脚本(Firebug 控制台什么也没显示)。

任何帮助表示赞赏。

$(document).ready(function(){
$("#navigation a").each(function() {
    $(this).click(function(){
        event.preventDefault();
        loader();
    });
});

});

function loader(){
theLink = event.target;
alert("You clicked: " + theLink);
}
4

4 回答 4

2

尝试将您的代码更新为此

$(document).ready(function(){
    $("#navigation a").click(function(event){
        event.preventDefault();
        loader(event);
    });
});

function loader(event){
    var theLink = event.target;
    alert("You clicked: " + theLink);
}
于 2011-08-02T03:33:38.797 回答
2
$(document).ready(function(){
    $("#navigation a").click(function(event){
            event.preventDefault();
            loader(event);
        });                

    function loader(event){
    theLink = event.target;
    alert("You clicked: " + theLink);
    }
});
于 2011-08-02T03:36:52.317 回答
1

您没有将事件对象传递给您的点击处理程序。此外,您不需要.each().click()枚举查询结果并将点击处理程序附加到每个查询结果

尝试将其调整为:

$(document).ready(function(){
    $("#navigation a").click(function(e) {
            e.preventDefault();
            loader(e);
        });
    });
});

function loader(e){
    theLink = e.target;
    alert("You clicked: " + theLink);
}
于 2011-08-02T03:32:44.527 回答
-1

尝试return false在点击函数末尾添加

 $(this).click(function(){
        event.preventDefault();
        loader();
        return false;
    });

并阅读此event.preventDefault() 与 return false

于 2011-08-02T03:33:11.240 回答