Jquery 尝试阻止默认单击并运行函数

Jquery 尝试阻止默认单击并运行函数,jquery,jquery-events,preventdefault,Jquery,Jquery Events,Preventdefault,我对JS和jQuery还很陌生,我刚刚掌握了基本的JS,可以在jQuery中尝试一些东西。因此,我在这里试图做的是防止在单击主导航中的链接时加载页面(理想情况下使用ajax加载页面) 到目前为止,这是我的脚本,基本上没有任何效果。。。在Chrome中,警报显示并显示单击的链接,但Firefox4似乎完全忽略了我的脚本(Firebug控制台没有显示任何内容) 感谢您的帮助 $(document).ready(function(){ $("#navigation a").each

我对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);
}

您没有将事件对象传递给单击处理程序。另外,您不需要
。each()
,因为
。click()
将枚举查询结果,并为每个查询结果附加一个单击处理程序

尝试将其调整为:

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

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

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

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

然后阅读此

尝试将您的代码更新到此版本

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

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

谢谢,仍然在熟悉事件并将内容传递给函数。
$(document).ready(function(){
    $("#navigation a").click(function(event){
            event.preventDefault();
            loader(event);
        });                

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