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

发布于 2024-11-27 19:17:52 字数 506 浏览 1 评论 0原文

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

I'm pretty new to JS and jQuery, and I've just gotten enough grasp on basic JS to try some things out in jQuery. So what I'm trying to do here is prevent pages from loading when a link in the main navigation is clicked (and ideally would load the page with ajax instead).

So this is my script so far, and basically nothing is working... in Chrome, the alert shows up and displays the link that was clicked, but Firefox4 seems to ignore my script altogether (Firebug console shows nothing).

Any help is appreciated.

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

});

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

如痴如狂 2024-12-04 19:17:52

尝试将您的代码更新为此

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

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

Try updating your code to this

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

function loader(event){
    var theLink = event.target;
    alert("You clicked: " + theLink);
}
⒈起吃苦の倖褔 2024-12-04 19:17:52
$(document).ready(function(){
    $("#navigation a").click(function(event){
            event.preventDefault();
            loader(event);
        });                

    function loader(event){
    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);
    }
});
荒芜了季节 2024-12-04 19:17:52

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

请尝试调整它到:

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

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

you aren't passing in the event object to your click handler. Also, you don't need the .each()as the .click() will enumerate the results of your query and attach a click handler to each of them

try adjusting it to:

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

function loader(e){
    theLink = e.target;
    alert("You clicked: " + theLink);
}
枫林﹌晚霞¤ 2024-12-04 19:17:52

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

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

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

Try adding return false at the end of the click function

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

and read this event.preventDefault() vs. return false

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文