問題:
私は、ほとんど経験のない javascript/jQuery を使い始めました。動作するコードがありましたが、少し再構築した後、すべてが機能しなくなりました。
元のコード:
// Floating NavBar - Side
var names = ['#floatMenu','#header'];
for (var i = 0; i < names.length; i++){
floatObj(names[i])
}
function floatObj(name)
{
var menuYloc = null;
$(document).ready(function(){
menuYloc = parseInt($(name).css('top').substring(0,$(name).css('top').indexOf('px')));
$(window).scroll(function(){
var offset = menuYloc + $(document).scrollTop() + 'px';
$(name).animate({top:offset},{duration:0,queue:false});
});
});
};
再構築されたコード
$(document).ready(function(){
floatObj();
});
function floatObj()
{
var names = ['#floatMenu','#header'];
var menuYloc = null;
for (var i = 0; i < names.length; i++){
menuYloc = parseInt($(names[i]).css('top').substring(0,$(names[i]).css('top').indexOf('px')));
$(window).scroll(function(){
var offset = menuYloc + $(document).scrollTop() + 'px';
$(names[i]).animate({top:offset},{duration:0,queue:false});
});
};
};
質問:
この方法でコードを再構築してもうまくいかない理由を誰かが指摘できるかどうか疑問に思っていましたか? また、追加のアドオンなしで JavaScript をデバッグする方法があるかどうかも疑問に思っていましたか? (明らかな誤りを指摘していただけると助かります。)
理由。
このようにコードを再構築したい理由は、ロード時に実行したい関数が他にもいくつかあるためです。すべての関数を $(document).ready(function(){}) ビットに入れることができると考えました。これを行う適切な方法が実際にある場合は、私に教えてください ><。
どんな助けでも大歓迎です!ありがとう。