dataTransfer.setData在IE9中不起作用

时间:2013-05-23 18:08:43

标签: javascript jquery internet-explorer drag-and-drop

我使用jquery将一些代码绑定到dragstart事件:

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

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

我如何为IE工作?

2 个答案:

答案 0 :(得分:12)

in ie根据docs只有两个参数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;
}

答案 1 :(得分:1)

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

setData('text',1)错了

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