尝试阻止默认点击并运行函数
我对 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
尝试将您的代码更新为此
Try updating your code to this
您没有将事件对象传递给您的点击处理程序。另外,您不需要
.each()
,因为.click()
将枚举查询结果并向每个结果附加一个点击处理程序,请尝试调整它到:
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 themtry adjusting it to:
尝试在点击函数末尾添加
return false
并阅读此 event.preventDefault() 与 return false
Try adding
return false
at the end of the click functionand read this event.preventDefault() vs. return false