1

また、テキスト以外のアイテムも拒否します。これは、ユーザーがテキストを入力フィールドにドラッグ アンド ドロップできるようにするためです。ユーザーが非テキストを入力しようとすると、許可されません。

ドロップ イベントを検出する方法は次のとおりです。

   input_element.addEventListener("drop", function (event) {

        // `this` points to the input element

        // implement is_text

        if (is_text) {
            label_element.style.opacity = 0;
        } else {
            // reject
        }
    }, false);

ラベル要素の不透明度を 0 に設定して、ラベルを非表示にします。

ドロップされた「もの」が実際にテキストであることを確認するにはどうすればよいですか?

これは

[Object HTMLInputElement]

.valueテキストがあればそれを保持します。

ただし、this.value は正しくログに記録されません。console.log(this.value) は、dom インスペクターが表示しても値を表示しません。

イベント開催

[ObjectDragEvent]
4

2 に答える 2

1
var text = "some string";
if(typeof text == 'string') //true

ドラッグスタートなどにフックして、ドラッグされた要素の dataTransfer に taxt を追加する必要があります。http://html5demos.com/drag を確認してください

addEvent(el, 'dragstart', function (e) {
  e.dataTransfer.effectAllowed = 'copy'; // only dropEffect='copy' will be dropable
  e.dataTransfer.setData('Text', this.id); // required otherwise doesn't work
});

上記の例のリンクのように

しかし、あなたは何をドラッグしようとしていますか?

于 2013-06-16T21:30:59.490 に答える