3

TL;DR: 「クリック」リスナーはテーブル セル (td) とヘッダー (th) に対して正確ではありません。モバイル Safari を使用して iPad 2 をタップすると、セルの境界線を超えてリッスンしているように見えます。これは既知の問題ですか?回避策はありますか?


かなり具体的な質問で、サンプル コードはありません (必要ありません)。誰かがこの質問を見つけて、以前にこの問題を解決したことを願っています!

DataTables.net と jQuery UI を使用して作成されたテーブルがあります。それは偶然のはずですが、とにかく言及したかったのです。このテーブルは、行ヘッダー (並べ替え用) や特定のセルの内容など、さまざまな要素のクリック イベント (モバイル Safari では単純にタップと解釈されると思います) をリッスンします。

(iPad が接続されている) Mac で Inspector を使用すると、パディング、ボーダー、マージン、さらには「visibility: hidden」などのコンテンツに関して、要素が誤って重なっていないことがはっきりとわかります。さらに、それらはデフォルトの動作を持つ表のセルです。表セルのシミュレーションではありません。

実際のデータの一番上の行で、セルの上半分のどこかをタップすると、実際にはリスナーが行ヘッダーのクリックにつまずきます。誤ってヘッダーを微調整していないことがわかるように、ばかげたレベルまでズームインし、上のヘッダーではなく、表のセル内でタップが完全に発生することを確認しました。

この精度の欠如に対するメタ プロパティ、CSS、または JavaScript の回避策があるかどうかは誰にもわかりませんか? セルをタップする時間の少なくとも半分は、代わりに (ゴースト ヘッダー タップから) 列の並べ替えを実際にトリガーしています。

回避策として私が考えることができる唯一のことは、各セルの内容を div または span でラップし、セルの端から少し離してパディングし、できればそのようにタップ ターゲット領域を人為的に減らすことです。

4

1 に答える 1

0

x、y 座標がテーブルの外側にある場合、単に無視することはできませんか?

クリックがテーブル内にあり、x、y 座標が間違っている場合は、スケーリングの問題またはバグである可能性があります。

于 2015-06-16T18:22:24.457 に答える