私は phonegap アプリに取り組んでおり、html 入力ボタンの onclick が起動しないという奇妙なケースがあります。ボタンはページに表示されます。ボタンをクリックすると、ボタンの上に影が表示されるので、クリックされていることがわかりますが、関数は起動しません。コードは以下です。私は同じコードを取り、期待どおりに動作するjsfiddleに入れました。代わりにjquery経由で設定しようとしましたが、同じ結果です。
console.log('making photo button');
var photoInput = document.createElement('input');
photoInput.type = 'button';
photoInput.value = 'Add Photo';
photoInput.onclick = function () {alert('photo button clicked');};
console.log(photoInput.onclick);
form.appendChild(photoInput);
両方の console.log が発生し、2 番目の出力は上記で設定した onclick です。奇妙なことに、このボタンの下に別の入力ボタンを作成します。構文は同じですが、onclick は異なりますが、問題なく動作します。唯一の違いは、このブロックが for ループの switch ケース内にあり、フォームを動的に構築することですが、他のボタンは後で作成されて追加されることです。ログ ステートメントが表示されるため、コードに到達していない可能性はありません。
提出前の編集:これを機能させました。ループとその他の入力ボタンを作成して追加し、フォームをドキュメントに追加したら、次のコードを実行します。
var photoButton = document.getElementById('photoButton');
photoButton.onclick = function () {alert('photo button after clicked');};
私はこれで作業できますが、誰かが知っていれば、なぜそれが元々機能していなかったのかを理解したいと思います.