Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Internet Explorer 9中不再触发事件ondragstart_Javascript_Jquery_Html_Drag And Drop_Internet Explorer 9 - Fatal编程技术网

Javascript Internet Explorer 9中不再触发事件ondragstart

Javascript Internet Explorer 9中不再触发事件ondragstart,javascript,jquery,html,drag-and-drop,internet-explorer-9,Javascript,Jquery,Html,Drag And Drop,Internet Explorer 9,我已经在div上实现了。它适用于所有浏览器,包括IE8。但自从IE9发布以来,它就不再有效了。ondragstart事件未被触发。以下是我的代码,使用jQuery: $('#mydiv') .bind('selectstart', function(e) { // Prevent text selection return false; }) .bind('dragstart', function(e) { console.l

我已经在div上实现了。它适用于所有浏览器,包括IE8。但自从IE9发布以来,它就不再有效了。ondragstart事件未被触发。以下是我的代码,使用jQuery:

$('#mydiv')
   .bind('selectstart', function(e) {
        // Prevent text selection
        return false;
    })
    .bind('dragstart', function(e) {
        console.log('dragstart');
    })
    .bind('drag', function(e) {
        console.log('drag');
    })
    .bind('dragend', function(e) {
        console.log('dragend');
    });
还有HTML

<div draggable="true">DnD this thing!</div>
DnD这东西!

我打赌这在IE8中不起作用,因为IE8或IE9都不完全支持HTML5拖放,这只是在中添加的。HTML5API基于IE5中的拖放实现,但存在一些差异。最恰当的是,IE9和之前的版本不支持元素上的
draggable
属性-IE9中唯一可以拖动的东西是默认情况下可以拖动的东西:文本选择、链接和图像

因此,要使其在IE9(或IE8)中工作,您需要在HTML中添加一个链接(该链接必须具有
href
):


.

那是打字错误吗?但是您的div没有
id=“mydiv”
这里有一个解决方案,可以启用链接、图像和文本选择以外的DnD元素:
<div id="mydiv"><a draggable="true" href="#">DnD this thing!</a></div>
$('#mydiv')
   .bind('selectstart', function(e) {
        // Prevent text selection
        return false;
    })
    .bind('dragstart', function(e) {
        e.originalEvent.dataTransfer.setData("Text", $(e.target).closest('div').attr('id'));
        console.log('dragstart');
    })
    .bind('drag', function(e) {
        console.log('drag');
    })
    .bind('dragend', function(e) {
        console.log('dragend');
    })
    .bind('click', function(e) {
        return false;
    });