2

すべてのブラウザで単語をダブルクリックすると、クリックした単語が自動的に強調表示されます。しかし、シングルクリックでまったく同じことを実現する方法を見つけることは可能ですか?

これに関係するものは次のようになると思います。-すべての段落(または全身またはdiv)のonclickに反応しますが、ブラウザにどのように伝えることができるかを示す場所はどこにも見つかりませんでした。

「ねえ!マウスの真下でテキストを強調表示するというクールなことをしてください...今すぐ...ダブルクリックではなくシングルクリックだけですが。」

明確にするために:私はdivまたは段落内のテキスト全体を強調することを求めていません(それはかなり単純です、スタックオーバーフローについて多くの説明があります)。また、単語ごとに10億のスパンを挿入するようなこともしたくありません。ブラウザでテキストをダブルクリックしたときとまったく同じ機能を見つけたいと思っていますが、シングルクリックの場合です。

はい、選択したテキストで何かをする予定です。

4

4 に答える 4

1

ちょっと厄介なアプローチですが、これを使用すると、各単語をクリックして聞いてから、動作をシミュレートできます。dblclick() がネイティブのダブルクリックをシミュレートするとは思いませんが、これを使用すると、目的を達成できる可能性があります。

脚本:

    var words = $("p:first").text().split(" ");
    var text = words.join("</div> <div>");
    $("p:first").html("<div>" + text + "</div>");
    $("div").click(function () {
       $(this).css("background-color","yellow");
    });

HTML

    <p> word1 word2 word3 </p>

フィドル

http://jsfiddle.net/tbpJT/1/

于 2012-03-11T19:12:43.253 に答える
0
$('#content').click(function() {
    $(this).dblclick();
});

ブラウザによって、この動作が制限される場合があります。たとえば、迂回または別のイベントを実行して別の要素を .click() しようとした場合。次の回答も役立つ場合があります。

jQueryを使用したJavascript:同じ要素をクリックしてダブルクリックすると、効果が異なり、一方が他方を無効にします

于 2012-03-11T19:08:29.257 に答える
0

私は先に進み、それは不可能だと言います。

Javascript は DOM ツリーと対話します。要素と対話することはできますが、テキスト自体と対話することはできません。リモートで可能だと思う唯一の方法は(スパンタグでhtmlコードを溺死させる以外に)、動的に行うことです。テキストノードを読み取り、単語をスパンに分割します。

于 2012-03-11T19:21:41.820 に答える