0

私は奇妙な問題で立ち往生しています.classという要素が.elementあり、それらのいくつかはテキストを含むdivであり、それらがダブルクリックされるContentEditableと属性がtrueになるため、ユーザーはテキストを編集でき、名前付きのクラスdisabledが編集中の要素に追加されます. その理由.elementは、マウスダウンイベントも関連付けられているためです。ユーザーがテキストを選択したり、キャレットを再配置したりする可能性があるため、要素が編集されているときにイベントが発生することは望ましくありません。そのために、mousedown イベントに次のようなものを追加しました。

if(element.hasClass("disabled")) return false;

これは機能しませんが、マウスダウンイベントを取り除き、代わりに「クリック」イベントを使用すると、完全に機能します。私は何をすべきか ?

編集: ここに例を示します " http://jsfiddle.net/wqKke/ ...各要素をダブルクリックすると編集可能になりますが、要素内のキャレットを選択または再配置できないことに気付いた場合は、その要素を編集するのは本当に難しいですが、マウスオーバーをクリックに変更すると、問題は解決します!

4

1 に答える 1

1

イベントにがありreturn false;mousedownユーザーがテキストを選択したり、キャレットを移動したりできなくなります。あなたreturn false;がしたいのは、コードreturn実行されないようにすることだけです。これは、何かを実行することで実行できます。

したがって、これでも十分です。

if(element.hasClass("disabled")) return;
于 2013-04-29T23:37:40.087 に答える