2012-04-19 19 views
5

私は隠れたdivを制御するいくつかのjavascriptを持っています。今ではほとんどのページで動作しますが、他のページでは他のJavaScriptが動作していません...私の書き込みは不十分ですか?

$(document).ready(function() { 
$("#user-dropdown-toggle").live ('click', function() { 
    $("#left-user-bar").addClass("open"); 
    $("#user-dropdown-toggle").addClass("league-judgement"); 
    $("body").addClass("league-judgement"); 
}); 
$(".league-judgement").live('click', function() { 
    $("#left-user-bar").removeClass("open"); 
    $("#user-dropdown-toggle").removeClass("league-judgement"); 
    $("body").removeClass("league-judgement"); 
}); 
}); 

Firefoxがエラーコンソールに次のように報告している:

タイムスタンプ:2012年4月18日午前九時08分21秒PM エラー:$( "#ユーザーがドロップダウン・トグル")がnullであるが

答えて

9

jQueryので$機能nullを返すことはありません。それでは、別のの非jQuery$が使用されている可能性があります。 (任意のASP.NETのものやprototype.jsのか、使用されている他のライブラリはありますか?カスタム$機能が後で宣言?)

私は例外が異なることになるので$はないnull自身であることを知っている、など: "$は関数ではありません"。この場合、ブラウザはであり、結果はであり、式($(...))はnullであり、上記の結論に至ります。

試してみてください。

$(document).ready(function($) { // <-- note $ there 
    ... 
}); 

それとも、いっそ、それだけでwindow.jQueryないwindow.$に依存しているよう:

jQuery(function($) { // <-- note $ there 
    ... 
}); 

そして、それが動作するかどうか、それは$前に上書きされていることです「準備完了」イベント(ただし、$(...).readyの後)。

:もちろん、それは$は、jQueryの(ウェブデベロッパーコンソールやFirebugのを使用)であるかどうかを確認するには... $は、この時点ではまだ
ないjQueryの であることを

(非常にそうではない)が可能です

  • $ === jQuery
      は、一般的に真でなければなりませんが、それは noConflictと、このような
    • $.fn.jquery$().jqueryに依存されないことがありますすべき文字列としてjQueryのバージョンの両方の結果
    • $(単に「ソースを表示」されますコンソールに機能を指定する)はさておきとして

    、Iだろうインデント機能体(例えば「準備完了」コールバック内で)、より明確に開始/終了する場所を確認します。

    ハッピーコーディング。

  • +0

    ありがとうございます。私はFirebugでそれをやることができることは知らなかった。鉱山が破損しているJavaScriptは、ここにあります:http://www.leaguejudgement.com/forum/public/min/index.php?ipbv=31005&g=jsご覧のとおり、多くのことがあります。私はjsのエキスパートではないので、bbcodeを自分のフォームに変換するための小さなjsスクリプトを見つけようとするかもしれません。 – PaulELI

    +1

    @PaulELIこの疑わしいことがあります: '$'を上書きする( 'window'スコープにあると思っていますが、最小化ではわかりにくい)' code {function $(element){...} "Prototype.js"ライブラリの使用に関連する可能性があります。とにかく、 'function($)'アプローチはやっていますか?そうでなければ、 '$'ではなく 'jQuery'を使って問題を解決していますか? '' jQuery(function($){/ * $ * /}を使用するオリジナルのものです。 ')であり、他のライブラリには一般的に影響されません。 –

    +1

    オクラホマはあなたの言ったことをうまく使いこなしました。私はあなたの最初の投稿をよく理解しておらず、それを別の方向にしていましたが、あなたの元の投稿は今やたくさんの意味を持ちます。ありがとう、それはそれを固定した。これは将来のjsの努力のために知っておくと良いことです。リッチテキストエディタが使用しているプロトタイプやライブラリは、さらにいくつかの問題の原因と思われるので、私はおそらくそれを置き換えます。 – PaulELI

    1

    最初に確認するのは、jQueryがすべてのページに含まれていることを確認することです。これは、$(document).readyビットで問題がなかったためだと思いますが、あなたは決して知りません。

    詳細は、この記事を見てみましょう:jQuery $("#field") is null?

    0

    jqueryスクリプト/ include行を追加する必要があります。

    また、同じページに「other JS」と書いてありますが、使用しているものとは別のJQueryをロードしていないことを確認する必要があります。インポートしたライブラリのオーバーライド.....

    関連する問題