IE ignores [draggable] attribute if set after mousedown event - by Danil Kostin

Status : 

  Not Reproducible<br /><br />
		The product team could not reproduce this item with the description and steps provided.<br /><br />
		A more detailed explanation for the resolution of this particular item may have been provided in the comments section.

ID 790344 Comments
Status Closed Workarounds
Type Bug Repros 1
Opened 6/17/2013 6:46:24 PM
Access Restriction Public


IE ignores element.draggable = true if you set this after a while since mousedown event:
element.draggable = false;
element.onmousedown = function(e) {
	setTimeout(function(){ element.draggable = true }, 150);

All browsers ( FireFox, Opera, Google Chrome, Safari ) take into account delayed «draggable» property setting and make element draggable.

This functionality is required in ACE web-based source editor to implement "drag delay" (ability to start new selelection inside current selection, to start dragging you need to wait a while), just like in Mac OS, see
Sign in to post a comment.
Posted by Danil Kostin on 9/4/2013 at 7:51 AM
So, could you reopen and try to reproduce the bug again, with paying attention to "Details" info?
Again: I need to set "draggable" attribute after some delay to implement "drag delay" feature in web-based code editor (
If you familiar with Mac, you know what I'm talking about: you can select text, starting in the middle of a previous selection. If you need to drag text, you should hold your selection for a while.

So, I'm trying to set "draggable" attribute after some delay (drag delay). This works as expected in all browsers, but fails in IE.
The workaround is to use dragDrop() method, but I am afraid it can be removed in the next versions.

I don't see this behavior to be documented in w3c standarts, but I'll try to ask about this issue.
Posted by Danil Kostin on 6/28/2013 at 9:59 AM
Sorry, I provided more info and reproduction steps under the bug "Details".
The actual problem is that IE does not start dragging right after first mousedown (before second one). But it should. And all browsers do this.
All browsers start dragging after first mousedown event and a while.

It looks like IE checks "draggable" attribute right after mousedown event. But all other browsers do such check after two or more mousemove events. So, they do not need the attribute to be set BEFORE or ON mousedown event. You are free to set it later, after some timeout, before "attempt" to drag (a row of mousemove events). But not in IE.

You can add this to the script to test it.
element.onmouseup = function(e) {
    element.draggable = false;

Could you reopen this bug? I am not sure such behavior is required by w3c, but all browsers support this. And this is very useful feature in some cases. As I noted in my workaround, currently we can use dragDrop() to simulate such behavior. But this method causes some bugs and I guess will be dropped later..
Posted by Microsoft on 6/20/2013 at 12:43 PM
Thank you for your feedback.

We are currently unable to reproduce this issue as described.

The IE browsers had the same behavior as FF, Chrome and Safari, in that after you hold down the left mouse button and you release the mouse button and click and drag without a problem.

We value your feedback. If you have additional information that can help us recreate this issue — such as a specific url, more detailed steps, test results from different machines, or additional conditions — please reactivate the bug or submit a new bug with more details on how to reproduce the issue. You can also read the guidelines at regarding filing a good bug report.

Best regards,

The Internet Explorer Team