2011-07-20 13 views
0

何が起こっているのか分かりません。リンクは単に表示されません。jQuery + .before()+ var = not working?

var se_buttons = { 
    'b': { 
     'tag' : 'b' 
    }, 
    'i': { 
     'tag' : 'i' 
    }, 
    'url': { 
     'tag' : 'url' 
    }, 
    'size': { 
     'tag' : 'size' 
    }, 
    'spoiler': { 
     'tag' : 'spoiler' 
    }, 
    'align': { 
     'tag' : 'align' 
    } 
}; 

function se_make_button(button, text) { 
    return '<a href="#" class="button se_button se_button_'+button+'">'+text+'</a>'; 
} 

function se_create (obj, toolbar) { 
    var se_toolbar = ''; 
    for (var button in se_buttons) { 
     se_toolbar = se_toolbar + se_make_button(se_buttons[button].tag, se_buttons[button].tag); 
    } 
    $(obj).before(se_toolbar); 
} 

toolbarは、プロパティを持つ単純なオブジェクトです。個々のものを個別に警告するときは、すべて動作し、すべての情報が正しく表示されます。同じ.before()コマンドをコンソールから実行すると、それも機能します。しかし、コードで - それはありません!私はさらに何ができますか? :/ 私は約2時間かけてこの作業をしようとしましたが、何が起こっているのか把握できません> < .replaceWith()またはそれ以外のコードを試しましたが、内部コードからはうまくいきません。


編集:明示的にコンソールから手動でコードを実行すると、Dかかわらず動作します奇妙なことは、私はbefore()部分の内側に正確な変数との警告を置く場合、文字列は罰金であるということです。他の方法で$(obj)を操作すると動作します。変数とオブジェクトの連動は、手探りではありません。

+0

テストケースを作成してください。 'se_buttons'や' se_create'の呼び出しを見ることはできません。 –

+0

se_buttonsが追加されました - シンプルなオブジェクトですが、無意味にビルドしたようですが、プロパティを追加する予定です。これはプレースホルダーです – casraf

答えて

0

何が起こったのか分かりませんが、今すぐ動作します。私は、それを明示的に電話ではなく、青い呼び出しの外で使用することを明示的に要求したと思う。

0

私はあなたのコードをそのまま使用し、正常に動作するように管理しました。 IE 7,8,9とFFで。 こちらをご覧ください。 http://jsfiddle.net/87UUD/7/

htmlの外観はどうですか?どのようにse_createメソッドを呼び出すのですか?

+0

これはコメントだったはずです。 –