0

重複の可能性:
Opera で要素の doubleclick イベントを無効にする

Opera ブラウザに問題があります。左ダブルクリック/選択でコンテキストメニューを表示するのは1つだけです。空の div を含むページがあります (背景画像)。それらは click および contextmenu イベントをフックしており、クリックが遅いときにクリックは正常に機能します。2 倍の速さでクリックすると、テキストが選択されます。私が観察したのは、おそらくこれの主な理由は、全体を1行として扱っているという理由だけで、inline-blockを使用していることです。コード例は次のとおりです。

<!doctype html>
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/dojo.js" data-dojo-config="async: 1"></script>
    </head>
    <body>
        <div style="display: inline-block;">
        <table>
            <tr>
                <th colspan="3">Header</th>
            </tr>
            <tr>
                <td></td>
                <td>
                <div id="test" style="height: 38px; width: 38px; background: red;">
                </div>
            </td>
            <td></td>
        </tr>
      </table>
    </div>
    <div style="display: inline-block;">
      <table>
            <tr>
                <th colspan="3">Header</th>
            </tr>
            <tr>
                <td></td>
                <td>
                <div id="test" style="height: 38px; width: 38px; background: red;">
                </div>
            </td>
            <td></td>
        </tr>
      </table>
    </div>
    </body>
</html>
<script type="text/javascript">
require(["dojo/dom", "dojo/on","dojo/domReady!"], function(dom, on) {
    on(dom.byId('test'), 'click', function() { /* do something here */ return false; });
});
</script>

inline-blockを残して、それを防ぐことは可能ですか? 可能であれば、Dojo を使用したソリューションに特に関心があります。

4

1 に答える 1

0

これはあなたのコードとはほとんど関係がなく、Opera のデフォルト設定のすべてとは関係がないと思われます。

これは、ダブルクリックでコンテキストメニューを無効にする方法に関する記事です。これは、制御できないクライアント側の設定であるため、明らかにこれで問題は解決しません。

于 2012-10-15T12:35:01.080 に答える