2017-01-03 286 views
1

你好,我試圖使用jQuery的HTML拖放功能。我生成我拖動(按鈕)這樣ondragstart在觸發器中不觸發

$("#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監聽器中的警報在chrome上顯示得很好,但它不在Firefox上。

我已經嘗試將ondragstart="dragstart_handler(event);"直接添加到我的按鈕中,如https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API中提到的,但問題依然存在。我也嘗試用return false();

替換event.originalEvent.preventDefault();任何提示?

編輯:小提琴>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

不客氣,祝你好運。 –