0

HTML ファイルでボタンがクリックされたときに、jQuery でメソッドを呼び出す必要があります。しかし、メソッドを呼び出すことができません。これに関して私を助けてください。私のコードで何が間違っているか教えてください。

私のhtmlファイルは


<!DOCTYPE html >
<html>
    <head>
        <title>Similar Entity Search-DFS</title>
        <script type="text/javascript" src="http://code.jquery.com/jquery   -1.10.0.min.js" ></script>
        <script type="text/javascript" src="newJs.js" ></script>
    </head>
    <body>


        <div class ="filter" id="search-panel">
            <div class="search" id="search-box">
                                 <label>Enter Entity tuple</label>
                <button type="button"  class="btn-primary" id="search-button" >Search</button>
            </div>

        </div>


    </body>
 </html>

このhtmlファイルは、jQueryを持つjavascriptファイルnewJs.jsを呼び出します

これは私のjavascriptファイルです

 $(function(){

                page.init();

        });

        var page = {
            addEvent:function(){
                alert("here");
                   page.controls.searchButton.click(page.handlers.onSearchButtonClick);

            },

            handlers:{

                onSearchButtonClick: function(){

                alert("hi");
            },
            controls:{
            }

        },
    init: function(){

        page.controls.searchBox = $('#search-box');
        page.controls.searchPanel = $('#search-panel');     
        page.controls.searchButton = $('#search-button');
        page.addEvent();
    }
}

検索ボタン メソッドに存在する警告メッセージを印刷できません。これらのコードで行うべき修正を教えてください。

どうもありがとうございました。

4

3 に答える 3

0

ライブラリの URL の形式が正しくありません: http://code.jquery.com/jquery-1.10.0.min.js

$これが、最初のエラーが定義されていない理由です。

このデモで修正されたバージョンを確認できます: http://jsbin.com/odozey/1/edit

さらに、あなたの例controlsでは の子であるため、 を検索していhandlersたため、init関数も失敗しましたpage.controls

上記のデモでは、 の子になるように変更しましたpage。ご覧のとおり、動作します。

于 2013-06-16T20:32:32.190 に答える
0

addEventは jQuery メソッドではありません。イベント処理に対する別のアプローチです。jQueryを使用している場合は、次のようなものを使用します

$('#search-button').on('click', function() {
   // Do your searching stuff here
   alert("Searching!")});

または、ここで「addEvent」実装を取得できます

于 2013-06-16T20:28:33.370 に答える