0

特定の要素がクリックされたときに起動する必要がある外部 js ファイルがあります。このコードは ready 関数内にあります。ready 関数内にアラート ステートメントがあると、すべて正常に動作します。しかし、アラートを削除すると、準備完了関数が呼び出されません。この奇妙な動作の理由は何でしょうか?

alert()
    $(".monthChanger span").click(function (event) {
            event.stopPropagation();
            $(".monthChanger span ul").show();
        });

このアラート呼び出しがないと、上記のコードは起動されません。このコードは ready() 関数内にあります

4

1 に答える 1

0

問題は、「.monthChangerスパン」がロードされる前に外部ファイルがロードされて実行されることだと思います。jQuery のトリガーは、トリガーがロードされた時点で既に存在する要素に対してのみ機能します (少なくとも、使用しているトリガーは、セレクターのコードの後に​​ロードする必要のない他の jQuery 関数 ( .live ) があります)作業する準備ができています)。

これを解決するには、「.live」jQuery 関数に頼ることができます。外部ファイルに対して $(document).ready() を試してください (ただし、これが機能するかどうかはわかりません。または、javascript ファイルが依存する要素よりも後でロードされます (単に、必要な要素の下に配置するだけです)。

于 2012-07-23T09:17:42.993 に答える