ondragstart没有在firefox中触发

时间:2017-01-03 13:56:30

标签: javascript jquery html drag-and-drop

您好我试图使用jquery的html拖放功能。我生成了像这样的可拖动(按钮)

$("#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中提到的按钮中,但问题仍然存在。我还尝试用event.originalEvent.preventDefault();

替换return false();

任何提示?

编辑:小提琴&gt; http://jsfiddle.net/Nn4x2/4/

1 个答案:

答案 0 :(得分:0)

这适用于div元素,请参阅http://jsfiddle.net/Nn4x2/26/ Firefox中似乎不支持可拖动的输入按钮。最好使用样式化的锚元素。

这被记录为按钮元素的Firefox错误 - 请参阅https://bugzilla.mozilla.org/show_bug.cgi?id=568313