Javascript jQuery代码破坏其他代码

Javascript jQuery代码破坏其他代码,javascript,jquery,function,Javascript,Jquery,Function,我使用这个函数在向下滚动页面时在屏幕上保留一个div。这项工作很好,但是它似乎破坏了其他一些jQuery代码(在wordpress中)。问题在于以下函数。如果我删除它,其他代码可以正常工作。是否有人可以建议以下代码可能存在的问题: jQuery(document).ready(function($){ jQuery.event.add(window, "scroll", showbar); var sharebar = jQuery('#showbar'); var s

我使用这个函数在向下滚动页面时在屏幕上保留一个div。这项工作很好,但是它似乎破坏了其他一些jQuery代码(在wordpress中)。问题在于以下函数。如果我删除它,其他代码可以正常工作。是否有人可以建议以下代码可能存在的问题:

jQuery(document).ready(function($){ 
    jQuery.event.add(window, "scroll", showbar);
    var sharebar = jQuery('#showbar');
    var start = jQuery(sharebar).offset().top;
        function showbar() {
            var p = jQuery(window).scrollTop();
            jQuery(sharebar).css('position',((p+10)>start) ? 'fixed' : 'absolute');
            jQuery(sharebar).css('top',((p+10)>start) ? '10px' : '');
        }   
});
编辑:我所说的“破坏代码”的意思是,如果我在我的wordpress主题中包含一个包含此代码的javascript。wordpress的javascript不会在主题的控制面板中工作(例如,单击图像上传按钮不会弹出灯箱)。一旦我删除此代码,wordpress控件就会开始工作。很明显,这段代码有问题

编辑2:


我似乎没有收到任何js错误,但我注意到如果我将代码包装在
(function(){..})()中
而不是jQuery(文档)。ready(function($){那么wordpress没有任何问题,但是我的代码不起作用。你能建议我如何使用function()而不是jQuery(文档)吗.ready..很抱歉,我对jquery了解不多。

您创建
滚动
事件的方法非常不标准。而不是:

jQuery.event.add(window, "scroll", showbar);
你为什么不试试:

jQuery(window).bind('scroll', showbar);

有可能解决您的问题。

为了响应您的第二次编辑,请尝试放置
(function(){…})()
closure位于文件的最底部,就在closing
标记的上方。这样,所有相关的DOM元素都将已经存在。

去掉这段代码,并添加以下CSS规则:

#showbar {
    position: fixed;
}
这是一种使元素保持在相同位置的通用方法,即使在用户滚动时也是如此。CSS方法比JavaScript实现需要更少的计算能力


如果您仍然想使用JQuery,请查看此页面:

在不知道什么是“其他代码”或什么是“中断”的情况下很难分辨。它是如何“中断”的?您遇到了什么错误?您是否尝试过调试它(FireBug/Chrome JS Debugger/等)?似乎这些问题通常会引出一个不可避免的问题,你知道如何调试吗?对不起,我编辑了这个问题。你是否查看了错误控制台或调试控制台以查看是否报告了javascript错误?最有可能的情况是,此代码引入了JS错误,从而阻止其他代码运行。谢谢!它工作得很好。只是想知道是否有其他方法(不是在页面末尾加载,而是在页眉中加载)。可能有;很难说没有看到与您的javascript冲突的其他javascript。但将JS放在文件的底部是一种相当标准的开发实践,有时甚至是首选。请阅读以了解更多详细信息。