2011-09-12 14 views
0

私はこの機能を使用して、ページをスクロールダウンしたときに画面にdivを保持します。これはうまく動作しますが、WordPressの他のjQueryコードが壊れているようです。問題は次の機能にあります。私はそれを削除する場合、他のコードは正常に動作します。jQuery code breaking other code

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' : ''); 
     } 
}); 

編集:誰かが次のコードで問題となる可能性がどのような示唆ができ、私は「コードを壊す」によって何を意味するのか私は私のワードプレスのテーマでは、このコードを持つJavaScriptが含まれている場合、ということでした。テーマのコントロールパネルでWordPressのjavascriptが機能しません(例:画像アップロードボタンなどをクリックするとライトボックスが表示されません)。このコードを削除するとすぐにWordpressコントロールが動作し始めます。だから明らかにこのコードでは何か間違っています。

編集2:

私は任意のjsのエラーを取得するように見えるいけないけど、私は(function() { .. })();の代わりjQuery(document).ready(function($){でコードをラップならば、ワードプレスは問題ありませんが、その後、私のコードは動作しません気づきました。 jQuery(document).ready ..の代わりにfunction()を使用する方法を提案できますか?申し訳ありませんが、jqueryの知識はあまりありません。

+2

他のコードは何ですか? –

+3

「他のコード」が何であるか、何が「中断しているか」を知らずに伝えるのは難しいです。 – mrtsherman

+0

どのように「中断する」?あなたはどんなエラーを出していますか?あなたはこれをデバッグしようとしましたか(FireBug/Chrome JS Debugger /など)? –

答えて

0

2回目の編集に応じて、(function() { ... })()クロージャーをファイルの一番下、つまり閉じた</body>タグのすぐ上に配置してみてください。そうすれば、関連するすべてのDOM要素が既に存在します。

+0

ありがとう!それは完全に働いた。別のアプローチがあるかどうか疑問に思うだけです(ページの最後にロードするのではなく、ヘッダーにロードするのではなく)。 – mari

+0

あります。あなたのものがぶつかっている他のJavaScriptを見ずに言うのは難しいです。しかし、あなたのJSをファイルの最後に置くのはかなり標準的な開発方法です。この詳細については、http://developer.yahoo.com/blogs/ydn/posts/2007/07/high_performanc_5/を参照してください。 – thismax

0

scrollイベントを作成するあなたのやり方はかなり標準的ではありません。代わりに:

jQuery.event.add(window, "scroll", showbar); 

なぜあなたはしないでください:

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

はあなたの問題を解決する可能性がありますチャンスがあります。

1

は、コードのその部分を取り除くと、次のCSSルールを追加取得:

#showbar { 
    position: fixed; 
} 

これもユーザーがスクロール、同じ位置にある要素を維持するための普遍的な方法です。 CSSメソッドは、JavaScript実装よりも少ない計算能力しか必要としません。

まだJQueryを使用したい場合は、このページをチェックしてください:http://wpapi.com/wordpress-and-jquery-conflicts-how-to-solve-that/

関連する問題