Javascript jQuery不需要的向上滚动
我有一堆描述块,当单击相应的图像时,这些描述块应该淡入,淡出上一个描述块。淡入淡出是可行的,但每次点击页面都会不断向上滚动,扰乱用户的导航Javascript jQuery不需要的向上滚动,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一堆描述块,当单击相应的图像时,这些描述块应该淡入,淡出上一个描述块。淡入淡出是可行的,但每次点击页面都会不断向上滚动,扰乱用户的导航 google.load("jquery", "1.3"); google.setOnLoadCallback(function() { jQuery(function($) { $('#a').click(function(e){ $('#bio-b,#bio-c').fadeOut('slow', function(){
google.load("jquery", "1.3");
google.setOnLoadCallback(function() {
jQuery(function($) {
$('#a').click(function(e){
$('#bio-b,#bio-c').fadeOut('slow', function(){
$('#bio-a').fadeIn('slow');
});
});
});
});
我是一个JavaScript/jQueryNoob,主要是从网上找到的代码拼凑而成的。我希望代码不是完全倒退的
编辑:这是在本例中单击的图像的HTML:
<a href="#" id="a"><img></a>
你有没有想过是什么原因造成的,如何修复它?我相信这就是你想要的。如果我理解错误,请让我知道,我会调整我的答案:
$(document).ready(function(){
$('.image').click(function(){
var findIdNumber = $(this).attr("id");
$('#bio-' + findIdNumber).fadeIn();
$("article").not('#bio-'+findIdNumber).fadeOut();
});
});
使用
href
of#有效地意味着查找id为空的元素。显然你没有。要修复被“跟踪”的链接,需要对传递给句柄的事件调用preventDefault
即:
尝试从链接中删除
href=“#”
属性,这可能会触发页面滚动。这种行为本身在HTML标准中,在升级之前)。;-) 与您的问题无关,但id属性必须以字符而不是数字开头。@MarkusKottländer抱歉,这些是我代码中的名称,但为了可读性,我在示例中添加了数字。“会改回来的。”尼顿菲尔:好建议,我没想到要查版本。那么会是2.0.3吗?至于更改href,我应该早一点想到,但是,我用描述的锚点替换了它。现在,页面不仅不会在每次单击时向上滚动,还会向右滚动到描述!这甚至比Neikos的建议更好,谢谢!我为您创建了一个答案,如果您不介意,请接受并投票
#bio-a {
display : none;
}
$(document).ready(function(){
$('.image').click(function(){
var findIdNumber = $(this).attr("id");
$('#bio-' + findIdNumber).fadeIn();
$("article").not('#bio-'+findIdNumber).fadeOut();
});
});
$('#a').click(function(e){
$('#bio-b,#bio-c').fadeOut('slow', function(){
$('#bio-a').fadeIn('slow');
});
e.preventDefault();
});