5

クリックイベントがバインドされている DOM のさまざまな設定を含む Web ページを取得しました。

ただし、場合によっては、クリック イベントがトリガーされません。すべてのイベントを同じ方法で書きました: $('#Element').click(function(){...});

機能しない要素をクリックすると、何かを警告するように絞り込みました。しかし、何も起こりません。

これは Android モバイルでのみ発生します: Samsung Galaxy note 4.1.2 Samsung Galaxy s3 Mini 4.1.2 webview で実行すると、Chrome モバイル ブラウザで実行すると完全に動作します。

一般に、クリックイベントは「a」タグに配置され、ラベルと入力タイプは内部に隠されています。

その中にタグやラベルを使用しないための不明なルールや、Android ブラウザーでこれを解読する何かがありますか? または、この種のバグに対する他の解決策はありますか?

PS。要素を複数回(5〜6回)クリックすると、要素が発射されます...

4

3 に答える 3

5

WebView で JavaScript を有効にしましたか?

webView.getSettings().setJavaScriptEnabled(true);
于 2013-07-16T14:29:18.140 に答える
1

まず第一に、.click()非推奨であるため使用しないでください。代わりに、

$('#id').on('click', function(event) { 
    //whatever 
});

要素はJavaScriptで動的に挿入されますか? その場合は、yshrsmz が示唆するように、イベント委任を使用する必要があります。また、あなたの例では#element、これは id を持つ要素をターゲットにしていelementます。id は dom で 1 回だけ使用する必要があります。代わりに、クリックをトリガーするすべての要素にクラスを適用します。

すべてのバインディングがドキュメント準備完了に設定されていることを確認してください。

HTML を W3C バリデーターで実行して、すべてが有効であることを確認することはおそらく価値があります。そうしないと、エラーが発生する可能性があります。

最後に、Android の logcat をチェックして、要素をクリックしたときにエラーが報告されているかどうかを確認します。

于 2013-07-18T12:33:55.940 に答える
0

通常のクリック イベントの代わりにイベント委任を使用する場合は、問題ありません...(ほとんどの場合)

$(document).on('click', '#element', function(){});
于 2013-07-18T12:17:54.997 に答える