2016-04-29 12 views
0

私は2つのボタンを持っていますが、どちらもクリックされたときに実行する機能をトリガーしますが、パラメーターは異なります。ページ上の特定の要素が存在している間にクリックされたときにのみ、その関数をトリガする必要があります。初期化時にボタンのOnClickイベントが発生しますか?

JSコード:

if (pageExists != null) { 

    document.getElementById('button1').onclick = function(53); 
    document.getElementById('button2').onclick = function(23); 
} 

ボタンのHTML(彼らはID以外の同一のコピーです):

<a href="nextpage.html"><button type="button" id="button1">click here</button></a> 

機能、それはのlocalStorageでパラメータ店舗を呼び出し、それはに行くべき次のページはhtmlコードを使用しています。ブレークポイントを使用すると、ページが読み込まれるとすぐに53、次に23が格納されます。大文字と小文字の区別は正しいです。

機能を実行する前に2つのボタンの1つがクリックされるまで待つことができますか?私はこれにjqueryを使用することはできません。

+3

'function(53)'? – Rayon

+1

あなたは 'addEventListener'を試しましたか?なぜ 'keyword'を関数名として使用していますか? –

+0

53がパラメータですが、関数の名前はStoreRefですが、質問には関係していないと思ったので、何が起こっているのかを人々が理解できるように機能させました。 – Jayleaf

答えて

4

呼び出す関数を設定する代わりに関数を呼び出すので、コードを実行してイベントハンドラを設定すると、function(53)が実行され、その関数呼び出しの戻り値にハンドラが設定されます。無効。代わりに、それを関数に設定する必要があります。私はあなたの関数は実際にはないことを仮定してい

if (pageExists != null) { 
    document.getElementById('button1').onclick = function() { 
    function(53); 
    }; 
    document.getElementById('button2').onclick = function() { 
    function(23); 
    }; 
} 

注:あなたが原因互換性の理由(これも良いことを説明します)に.bindを使用できない場合

if (pageExists != null) { 
    document.getElementById('button1').onclick = function.bind(53); 
    document.getElementById('button2').onclick = function.bind(23); 
} 

:これを試してみてください予約語であるfunctionと呼ばれています。

+0

'function(53)'?それはコンソールで叫ぶだろうか? – Rayon

+0

@レイヨン私はあなたが何を意味するのか分かりません... – Viliami

+0

これを実行して、コンソールをチェックしてください... – Rayon

関連する問題