1

ドキュメントのonmousemoveまたはonmouseup属性を変更するときはいつでも、たとえば次のようになります。

document.onmousemove = myOnMouseMove;

document.onmouseup = myOnMouseUp;

これにより、InternetExplorerでinputtype ='text'またはtextarea要素のテキストを選択できなくなります(ie7およびie8で試しましたが、Firefoxでは問題ありません)。これらのいずれかを削除すると、テキストを再度選択できますが、自家製のドラッグアンドドロップ機能をページの他の場所で機能させるには、両方が本当に必要です。

onmouseXXX関数のデフォルト機能を保持し、関数を最後にアタッチする方法はありますか?それとも、これを行うためのより良い方法はありますか?

また、textareaのonkeyup属性を使用して、点滅するテキストカーソルをテキストの最後に強制的に使用する場合にも同じ問題が発生します。

ありがとう

4

2 に答える 2

1

falseイベントハンドラー関数から戻ったり、ユーザーの選択を混乱させたりしない限り、問題はありません。または、イベントハンドラーでイベントのターゲットをチェックして、<input>sと<textarea>sを除外することもできます。

document.onmousedown = function(evt) {
    evt = evt || window.event;
    var target = evt.target || evt.srcElement;
    var tagName = target.nodeName.toLowerCase();
    if (tagName == "input" || tagName == "textarea") {
        // Do nothing
    } else {
        // Do your stuff
    }
};
于 2010-02-23T10:04:37.690 に答える
0

そもそもこれが必要な理由と思われるドラッグアンドドロップが必要な場合は、自分でコーディングしないことを強くお勧めします。代わりに、YUIやjQueryなどの一般的なフレームワークを使用してください。それらは適度に軽量であり、適度なクロスブラウザ互換性を提供します。本当に、このホイールを再発明するのは楽しいことではありません。

于 2010-02-23T00:36:32.967 に答える