8

我正在dragstart使用 jquery 将一些代码绑定到事件,如下所示:

$new.on('dragstart', function(event) {
  event.originalEvent.dataTransfer.setData("text/html", $new.clone().wrap('<p>').parent().html());
});

$new是一个 jquery 对象。目的是将拖动元素的 html 附加到事件中,以便我可以在拖放时创建副本。Chrome 甚至不需要此事件来执行此操作。添加此代码时,Firefox 可以工作。但是 IE9SCRIPT65535: Unexpected call to method or property access.在触发事件时会抛出一个。这是一个 jsFiddle:http: //jsfiddle.net/j52EM/3/

我怎样才能使这项工作适用于 IE?

4

2 回答 2

13

在即,根据文档,只有两个参数IE9 不接受 text/html 作为格式。仅使用“文本”

这是一个示例,即根据 msdn 网站:

function InitiateDrag() 
//  The setData parameters tell the source object
//  to transfer data as a URL and provide the path.
{   
    event.dataTransfer.setData("URL", oImage.src);
}

function FinishDrag()
//  The parameter passed to getData tells the target
//  object what data format to expect.
{
    sImageURL = event.dataTransfer.getData("URL")
    oTarget.innerText = sImageURL;
}
于 2013-05-23T18:17:15.837 回答
1

setData方法期望字符串数据类型不是数字

setData('text',1)是错的

setData('text',''+1)是正确的

于 2016-09-20T06:14:00.957 回答