1

私のHTMLファイル:

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" />
        <script src="script.js" type="text/javascript"></script>
    </head>
    <body>
        <form name="someForm">
            <input type="button" value="Click me" onClick="myFunction()" />
        </form>
        <div id="result"></div>
    </body>
</html>

私のscript.jsファイル:

function myFunction(){
    $("#result").html("BUTTON WORKS");
}

Firebug があり、ボタンをクリックするたびに、Firebug から次のエラーがスローされます。

ReferenceError: myFunction が定義されていません

私は何を間違っていますか?

4

4 に答える 4

2

scriptHTML では自己終了タグにすることはできません (doctype によっては一部のブラウザーで動作しますが、正しくありません)。終了タグを追加する必要があります。

交換

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" />

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

このエラーが原因で、スクリプトを指しているスクリプト要素が正しく解析されていない可能性があります。

ノルムから:

スクリプト要素には、開始タグと終了タグの両方が必要です。

引用符

于 2012-11-19T20:36:24.720 に答える
1

そのファイルをローカルで開いていますか (file://アドレスバーにあります)、またはサーバーから (http://アドレスバーのプロトコル) 開いていますか? ファイルをローカルで開くと、実際には次のアドレスから jquery をロードしようとするためです。

ファイル://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js

これは正しくありません。//ajax.googleapis.com/...これは、現在開いているページと同じプロトコルを参照するアドレスとして使用するために発生します。

次のように変更します。

http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js

ファイルをサーバーにアップロードして(またはローカルにインストールして)、完全なhttpリクエストでテストします。

于 2012-11-19T20:55:25.363 に答える
1

@Susbanth、@MBO、@dystroy からの回答を組み合わせて問題を解決しました。

これが私の新しい HTML ファイルです。

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script src="script.js" type="text/javascript"></script>
    </head>
    <body>
        <form name="someForm">
            <input type="button" value="Click me" />
        </form>
        <div id="result"></div>
    </body>
</html>

jQuery ソースに「http」を追加し、タグを閉じ、HTML 内から「onClick」を削除しました。

更新された script.js ファイルは次のとおりです。

$(document).ready(function(){
    $("input[type=button]").on("click",function(){
        $("div#result").html("BUTTON WORK");
    });
});

onClick イベントを jQuery イベントにしました。

于 2012-11-19T21:03:11.973 に答える
1

ファイル参照の問題が原因である可能性があります。

HTML ではなく js ファイルにイベントを添付することをお勧めします。

<form name="someForm">
    <input type="button" id="btn" value="Click me" />
</form>


$('#btn').on('click', function(){
    $("#result").html("BUTTON WORKS");
});
于 2012-11-19T20:36:04.453 に答える