Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止函数外部的链接在滚动时触发它_Javascript_Jquery - Fatal编程技术网

Javascript 如何防止函数外部的链接在滚动时触发它

Javascript 如何防止函数外部的链接在滚动时触发它,javascript,jquery,Javascript,Jquery,这似乎是一个容易解决的问题,但似乎无法解决。我有一个表,每当你在上面滚动时,它就会产生一个固定的标题。但是,它工作得很好,在页面顶部附近有一个未连接的链接,通过jquery将光标滚动到页面底部,直到它碰到锚。因此,它会快速移动到桌面上,生成固定菜单,然后在到达锚后,固定菜单尴尬地在那里停留一两秒钟,然后消失 我试图通过禁用点击链接的功能来防止这种情况。我试过e.preventDefault(),但没有乐趣。这是提琴和代码(因此,当您单击链接时,要防止出现固定的“标题/说明”行) // top

这似乎是一个容易解决的问题,但似乎无法解决。我有一个表,每当你在上面滚动时,它就会产生一个固定的标题。但是,它工作得很好,在页面顶部附近有一个未连接的链接,通过jquery将光标滚动到页面底部,直到它碰到锚。因此,它会快速移动到桌面上,生成固定菜单,然后在到达锚后,固定菜单尴尬地在那里停留一两秒钟,然后消失

我试图通过禁用点击链接的功能来防止这种情况。我试过e.preventDefault(),但没有乐趣。这是提琴和代码(因此,当您单击链接时,要防止出现固定的“标题/说明”行)

// top edge of table
var element_menu_hdr = $(".row-1").offset().top;
var element_menu_end_check = $(".row-12").offset().top;
$(window).on("scroll", function fixmenu() {
    var y_scroll_pos = window.pageYOffset;
    var scroll_menu_hdr = element_menu_hdr;
    var scroll_menu_end_check = element_menu_end_check; 
    if(y_scroll_pos >= scroll_menu_hdr) {

if($('.affix').length === 0){
$('.row-1.odd').wrap('<table class="tablemain affix view"></table>');  
}

} else if (y_scroll_pos < scroll_menu_hdr)  {
$('.tablemain.affix.view').contents().unwrap();
} else {    
    }  
});

// bottom edge of table
var element_menu_end = $(".row-12").offset().top;
$(window).on("scroll", function fixmenubtm() {
    var y_scroll_pos2 = window.pageYOffset;
    var scroll_menu_end = element_menu_end;
    if(y_scroll_pos2 > scroll_menu_end) {

$('.tablemain.affix.view tbody').contents().unwrap();   

} else {    
        } 
var myVar = y_scroll_pos2;
console.log(myVar, "y_scroll_pos2");    
var myVar2 = element_menu_end;
console.log(myVar2, "element_menu_end");
});

jQuery(document).ready(function($) {
    $(".scroll").click(function(event){     
        event.preventDefault();
        $('html,body').animate({scrollTop:$(this.hash).offset().top}, 500);
    });
});
//表的上边缘
var element_menu_hdr=$(“.row-1”).offset().top;
变量元素\菜单\结束\检查=$(“.row-12”).offset().top;
$(窗口)。打开(“滚动”,功能菜单(){
变量y_scroll_pos=window.pageYOffset;
var scroll\u menu\u hdr=元素\u menu\u hdr;
var scroll\u menu\u end\u check=元素\u menu\u end\u check;
如果(y滚动位置>=滚动菜单hdr){
如果($('.affix')。长度===0){
$('.row-1.odd')。换行('';
}
}否则如果(y\U滚动位置<滚动菜单\U hdr){
$('.tablemain.affix.view').contents().unwrap();
}否则{
}  
});
//桌子底边
变量元素菜单结束=$(“.row-12”).offset().top;
$(窗口).on(“滚动”,函数fixmenubtm(){
var y_scroll_pos2=window.pageYOffset;
变量滚动菜单结束=元素菜单结束;
如果(y\u滚动\u位置2>滚动\u菜单\u结束){
$('.tablemain.affix.view tbody').contents().unwrap();
}否则{
} 
var myVar=y_scroll_pos2;
log(myVar,“y_scroll_pos2”);
var myVar2=元素菜单结束;
log(myVar2,“元素菜单结束”);
});
jQuery(文档).ready(函数($){
$(“.scroll”)。单击(函数(事件){
event.preventDefault();
$('html,body').animate({scrollTop:$(this.hash.offset().top},500);
});
});

如果你能把它放在jsfiddle或其他东西上,让我们看到它,那将非常有帮助。另外,如果您可以删除图像,这样我们就不需要模拟png.Good调用,只需添加fiddle(w/精简代码,以便更容易调试)。谢谢你的提示。如果你能把它放在jsfiddle上或者别的什么东西上,这样我们就可以看到它了。另外,如果您可以删除图像,这样我们就不需要模拟png.Good调用,只需添加fiddle(w/精简代码,以便更容易调试)。谢谢你的提示。