19

ページが読み込まれたときに関数をトリガーしたい。これを行うには多くの方法があります。$('#button').clickただし、関数の前 に追加すると、getType関数が認識されません。例えば:

$('#button').click(function getType(id) {
    //...some code
});

エラー:getTypeが定義されていません

私は何が間違っているのですか?

明確にするために、この場合、無名関数を使用することはできません。$(document).readyまた、を使用するかどうかは関係ありません$(window).bind("load", function()が、これらを使用すると、「getTypeが定義されていません」というエラーが発生します。

4

6 に答える 6

28

関数を匿名にする必要があります:

$('#button').click(function() {
    //...some code
});

または、関数自体を渡します。

function getType() {
    //...some code
}

$('#button').click(getType);

クリックをトリガーしたいだけの場合は、次の電話番号に電話してください.click()

$('#button').click();

また、idパラメータは要素のではありませんid。クリックイベントオブジェクトになります。要素のを取得するにはid、次を使用してクリックされた要素を参照できますthis

$('#button').click(function() {
    var id = this.id;
});

JavaScriptとjQueryのチュートリアルをいくつか(この順序で)読むことをお勧めします。

于 2013-03-09T21:48:44.970 に答える
6

インライン表記を使用しているため、無名関数(名前関数なし)を使用する必要があります

コードは次のようになります。

$('#button').click(function() {
      // do your stuff here
    }
);

そのclick上、タイトルが言うように、あなたはイベントをシミュレートする必要がありますよね?もしそうなら、あなたは次のようなものを使うほうがいいです:

$('#button').on('click', function() {
  alert($(this).text());
});
// somewhere when you want to simulate the click you call the trigger function
$('#button').trigger('click');

こちらのドキュメントを参照してください

于 2013-03-09T21:49:18.407 に答える
3
$('#button').click(function getType(id) {
    //...some code
});

する必要があります:

$('#button').click(function() {
        [...] code here
    }
);

function() { }ある要素をクリックしたときにコードが実行する必要があるコールバックです。

関数がある場合は、getTypeそれをコールバックとして渡すことができます。

$('#button').click(getType);

ページの読み込み時に機能をトリガーする場合は、次のようにします。

$('#button').trigger('click');

または

function getType() {
    [...] code here
}

getType();
于 2013-03-09T21:47:49.410 に答える
2

要素で使用.trigger( event [, extraParameters ] )します。

extraParameters
タイプ:配列またはPlainObject
イベントハンドラーに渡す追加のパラメーター。

追加の利点は、イベントハンドラーにデータを渡すことができるのに対し、を使用する場合は.click()、オブジェクトにデータを割り当てることができないことです。

$("#target").trigger('click');

あなたが使用することを探しているならextraParameters

$( "#foo" ).on( "custom", function( event, param1, param2 ) {
  alert( param1 + "\n" + param2 );
});
$( "#foo").trigger( "custom", [ "Custom", "Event" ] );
于 2014-07-24T15:49:29.860 に答える
1

この.click()メソッドにはコールバック関数が必要です。したがって、代わりに次のようなことを行うことができます。

//Define your function somewhere else
function getType(id) {
    //...some code
}

$('#button').click(function() {
    getType($(this).attr('id')); //Execute it when its clicked.
});
于 2013-03-09T21:51:05.890 に答える
0

これを試してください、あなたがするようにIDを渡すことはできません:

$('#button').click(function() {
    var id = this.id;
    //...some code
});
于 2013-03-09T21:48:49.603 に答える