2017-01-03 10 views
1

こんにちは、jqueryでhtmlドラッグ&ドロップ機能を使用しようとしています。私はこれまでのところ、このondragstartがFirefoxで起動しない

$("#tb > tbody > tr").append(($("<td>")).append($("<input/>", {type:"button", id:"bt", draggable:"true", value:"test", class:"bt-test"}))).append($("</td>")); 

ように私のドラッグ(ボタン)を生成し、被写体にビットを読んだ後、私はこのような様々なイベントに対処しようとしている:

$(document).on("dragstart", ".bt-test", function(evt) 
{ 
    evt.originalEvent.dataTransfer.setData("text", $(this).val()); 
    alert(evt.originalEvent.dataTransfer.getData("text")); 
    evt.originalEvent.preventDefault(); 
}); 
$(document).on('dragenter', function(evt){evt.originalEvent.preventDefault();}); 
$(document).on('dragleave', function(evt){evt.originalEvent.preventDefault();}); 
$(document).on('dragover', function(evt){evt.originalEvent.preventDefault();}); 


// still irrelevant at this point 
$(document).on("drop", ".btCase", function(evt) 
{ 
    var data = evt.originalEvent.dataTransfer.getData("text"); 
    $(this).val(data); 
    event.originalEvent.preventDefault(); 
}); 

dragstartリスナ内の警告はクロムにはうまく表示されますが、Firefoxでは表示されません。

https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_APIに記載されているように、すでにondragstart="dragstart_handler(event);"を直接ボタンに追加しようとしましたが、問題は残ります。私もevent.originalEvent.preventDefault();return false();と置き換えようとしました

ヒントはありますか?

編集:フィドル>http://jsfiddle.net/Nn4x2/4/

+0

あなたがJSFiddleや他の実施例を提供することができます参照してください? –

+0

ここに行くhttp://jsfiddle.net/Nn4x2/4/ –

答えて

0

これはdiv要素と連携し、参照http://jsfiddle.net/Nn4x2/26/ ドラッグ可能な入力ボタンがFirefoxでサポートされていないようです。代わりにスタイル付きのアンカー要素を使用することが最善の方法です。

これは、ボタン要素のためのFirefoxのバグとして記録されます - https://bugzilla.mozilla.org/show_bug.cgi?id=568313

+0

はい私はそれを見た;私はちょうど非互換性が何か不思議だった。リンクありがとう。とにかく私はアンカーを使用すると思います。おかげで –

+0

あなたは大歓迎です。 –

関連する問題