0

これは私のXHTMLページのコードです。jQueryは/js/私のアプリケーションのフォルダーにあります。他のすべてのページの検証は同じファイルを使用してjQueryで行われますが、作成したこのテストページで単純なjQueryコードを実行することはできません。これはページのコードです:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Facelet Title</title>

    </h:head>
    <h:body>
        <script type="text/javascript" src="js/jquery.js"></script>

        <script>

            $(document).ready(function () {
                $("p").text("The DOM is now loaded and can be manipulated.");
            });

        </script>
        <br/><br/><br/>
        <p>Not loaded yet.</p>
        <input id="pedram" type="text" onclick="alert('hi');"/>
    </h:body>
</html>

CDATAタグも使ってみました。また、スクリプトをドキュメントの先頭に移動しました。

正しく機能するのは、イベントalert()内に配置したものだけです。onclick他に何も機能しません。

私が間違っていることを教えてください。

4

3 に答える 3

8

変化する

<script src="js/jquery.js">
        $(document).ready(function () {
            $("p").text("The DOM is now loaded and can be manipulated.");
        });
</script>

<script>
        $(document).ready(function () {
            $("p").text("The DOM is now loaded and can be manipulated.");
        });
</script>

jQuery ソースを 2 回指定する必要はありません。また、タグ内で js を使用している場合も必要ありません。

于 2012-10-05T14:28:40.703 に答える
0

問題は<h:body>、jQuery 1.x と組み合わせて使用​​しているようです。

jQuery 2.x またはいずれかを使用<body>すると、問題が解決します。

jQuery 1.x はどこかで使用している可能性が高く、使用時に nulldocument.bodyであるため失敗します。document.body<h:body>


私の質問に差し支えなければ、なぜ h 名前空間 ( http://java.sun.com/jsf/html ) を使用しているのですか?

于 2013-11-01T20:31:30.423 に答える
0

アプリケーション (Java) のコンテキスト パスを使用し、jquery ライブラリ アドレスに追加する必要がありました。

 <script type="text/javascript" src="#{facesContext.externalContext.requestContextPath}/js/jquery.js"></script>
于 2012-10-05T15:46:40.993 に答える