1

私のマスター ページ (私のサイトのすべてのページ) には、ToolkitScriptManager があります。

私のコンテンツ ページには、折りたたみ機能用の一連のハイパーリンクと div があります。

パネルを表示/非表示にするコードは、次のように機能します。

$(document).ready(function() {
// Hookup event handlers and execute HTML DOM-related code
$('#nameHyperLink').click(function() {

        var div = $('#nameDiv');
        var link = $('#nameHyperLink');
        if (div.css('display') == 'none') {
            link.text('Hide Data');
            div.show('100');
        }
        else {
            link.text('Show Data');
            div.hide('100');
        }

    });
});

jQuery 1.4.2 ファイルへの ScriptReference を toolkitscriptmanager に含めると、ページ上で JavaScript コードが正しく実行されません (ハイパーリンクのテキストのみが変更され、div は実際には表示されません)。 jQuery ファイルを ToolkitScriptManager にインクルードし、代わりにコンテンツ ページにインクルードすると、正しく機能します。

私は Javascript/jQuery の初心者ですが、これはまったく意味がありません。何が起きてる?

4

2 に答える 2

2

スクリプトインクルードの配置は、jQueryrefにとって重要です。生成されたソースを見ると、タグはスクリプトfunction()の下にあるに違いありません。jQueryリファレンスがページソースで取得できる限り早く来ることを確認する必要があります。

jQueryライブラリ参照をマスターページの先頭に移動してみてください。これでうまくいくはずです。それ以外の場合は、いくつかのソースを投稿してください!

于 2010-05-11T20:07:16.330 に答える
0

Tjが言うように...おそらくマスターページのヘッドセクションにあるはずです。また、このライブラリの Google のバージョンにリンクすると便利です。ユーザーは既にライブラリをキャッシュしている可能性があるからです。たとえば、このページのソースを見てください。

ここで考えられる 2 つの原因は、$ がまだ定義されていないこと (Tj の回答を参照) と、$ がプロトタイプなどの別のライブラリによって定義されていることです。

Firebug の JavaScript デバッガーの使用を検討するか、少なくとも Firefox に組み込まれているエラー コンソール ([ツール] -> [エラー コンソール]) を確認することを強くお勧めします。これにより、「機能していない」以外に何が起こっているかについて、より良い手がかりが得られます。

于 2010-05-11T21:05:14.717 に答える