这适用于所有其他浏览器,我不知道问题是什么。我有点匆忙,所以我想我会问你们,以防我错过任何明显的事情。我点击了一个链接,启动弹出窗口,在Firefox(可能还有歌剧)中,页面自动滚动回到顶部。
$('[class*=popup-link]').click(function(e) {
/* Prevent default actions */
e.preventDefault();
e.stopPropagation();
/* Get the id (the number appended to the end of the classes) */
var name = $(this).attr('class');
var id = name[name.length - 1];
/* Show the correct popup box, show the blackout and disable scrolling */
$('#popup-box-'+id).show();
$('#blackout').show();
$("html,body").css("overflow","hidden");
});
我需要preventDefault和stopPropagation来阻止其他一些事情的发生。你能看到任何错误或阻止这种自动滚动到顶部的方法吗?谢谢!
快速编辑:
我还在运行一个使用
对框进行居中的功能$(window).scroll(centerBox);
我不确定这是否会影响firefox中某些奇怪的滚动方式。这个函数的内容只是添加CSS,所以我怀疑它们会对它产生任何影响。
另一个编辑:
试用它的链接。我没有在Firefox上工作。 http://inserthtml.com/demo/internal-popup/
答案 0 :(得分:1)
首先,我认为脚本没有错。它应该阻止“顶部跳跃”,即使只有e.preventDefault()
。尝试剥离它。它应该判断这个处理程序是否导致它
$('[class*=popup-link]').click(function(e) {
e.preventDefault(); //prevent the click from jumping esp on hashes
e.stopPropagation(); //prevent from any parent click handlers that didn't prevent the jump
//no code here for now
return false; //the natural way to prevent the jump
});
如果此代码阻止了跳转,则代码的其余部分会出现导致其特别损坏的脚本的问题。检查控制台是否还有错误
答案 1 :(得分:1)
e.preventDefault();
e.stopPropagation();
相当于
return false;
改变它们,你会没事的