停止onClick以在jQuery事件之后返回页面顶部
我在这里读了很多关于这个问题的帖子,都有很好的解决方案,但是,在我的情况下,没有一个是可行的 这是我的JS:停止onClick以在jQuery事件之后返回页面顶部,jquery,onclick,return,Jquery,Onclick,Return,我在这里读了很多关于这个问题的帖子,都有很好的解决方案,但是,在我的情况下,没有一个是可行的 这是我的JS: $(document).ready(function(){ $("a.tab").click(function () { $(".active").removeClass("active"); $(this).addClass("active"); $(".inside ul").fadeOut(); $(".ins
$(document).ready(function(){
$("a.tab").click(function () {
$(".active").removeClass("active");
$(this).addClass("active");
$(".inside ul").fadeOut();
$(".inside ul").fadeIn();
var content_show = $(this).attr("title");
return false;
e.preventDefault();
});
$("a.tab, h4").FontEffect({
outline: true
})
});
我做错了什么
更新:
谢谢你的帮助。现在我有以下几点,尽管它仍然不起作用:
$(document).ready(function(){
$("a.tab").click(function(e) {
e.preventDefault();
$(".active").removeClass("active");
$(this).addClass("active");
$(".inside ul").fadeOut();
$(".inside ul").fadeIn();
var content_show = $(this).attr("title");
return false;
});
//$("a.tab, h4").FontEffect({
// outline: true
// })
});
锚定标签:
<a href="#" title="content_1" class="tab active">New Videos</a>
问题是在阻止默认操作之前返回(
e.preventDefault();
),请尝试以下操作:
$("a.tab").click(function (e) {
e.preventDefault();
$(".active").removeClass("active");
$(this).addClass("active");
$(".inside ul").fadeOut();
$(".inside ul").fadeIn();
var content_show = $(this).attr("title");
return false;
});
在锚定标签上,确保href的格式为:
href='javascript:void(0);'
尝试:
在代码中缺少事件参数变量
,在本例中,该变量将是e
如果您正在使用preventDefault()方法,则无需使用return false
在线演示:
更新
滚动跳转不是由点击链接引起的,而是因为当ul隐藏时,$(“.inside ul”)。fadeOut()
页面高度变小,因此浏览器滚动到顶部
通过使用.animate({opacity:0},500)
在不隐藏淡出效果的情况下进行淡出,可以修复此问题
$("a.tab").click(function (e) {
...
$(".inside ul").animate({opacity:0},500);
$(".inside ul").fadeIn();
...
e.preventDefault();
});
它可能像“e.preventDefault();”这样简单,但却在错误的线路上
$(document).ready(function(){
$("a.tab").click(function () {
e.preventDefault();
$(".active").removeClass("active");
$(this).addClass("active");
$(".inside ul").fadeOut();
$(".inside ul").fadeIn();
var content_show = $(this).attr("title");
return false;
});
$("a.tab, h4").FontEffect({
outline: true
})
});
你不需要包括事件变量,我也不相信有一个click@neal不客气,试试这个演示,把“函数(e){”中的“e”去掉看看它是否有效:你必须在函数参数中声明它。@amosrivera,可能很好。但我认为这也与在函数中阻止defauld有关space@neal:如果要访问事件对象(即
e.preventDefault
)是的。但是,正如您在回答中所说的那样……该调用也需要是第一个调用,或者至少在return false
语句之前。所以你们都有部分答案:-)修复了我的答案,包括(e)
$(document)。ready(function(){$(.tab”)。单击(function(e){.e.preventDefault();$(.active”)。removeClass(“active”)$(this.addClass(“active”);$(.inside-ul”).fadeOut();$(.inside-ul”).fadeIn();var content_show=$(this.attr(“title”);return false;});//$(.tab,h4”).fontfeffect({//outline:true/});@SSHUC,请查看我对您的问题的评论。@SSHUC不要发布代码(长代码)在评论中,用更新编辑您的原始Q。或者,如果您找到了正确的答案,请将其标记为,以便在单击链接时页面继续返回顶部。锚定标记是什么样子的?@SSHUC:您确定您的事件处理程序正在被触发……addClass和fade是否按照预期发生?@prodigitalson是的,everything发生得很好,但一旦发生,页面就会返回顶部
$(document).ready(function(){
$("a.tab").click(function () {
e.preventDefault();
$(".active").removeClass("active");
$(this).addClass("active");
$(".inside ul").fadeOut();
$(".inside ul").fadeIn();
var content_show = $(this).attr("title");
return false;
});
$("a.tab, h4").FontEffect({
outline: true
})
});