Ale*_*x C 3 jquery resize internet-explorer-9 jquery-ui-draggable internet-explorer-10
我在IE 9和10中制作.draggable工作时遇到了麻烦.使用的主要javascript包是:jquery-ui-1.9.1.min.js和jquery-1.8.2.min.js
代码基本上如下所示:
creation.texts.resize = function(){
jQuery('.modification-text.active .creation-resize-handler').draggable({
start: function(event, ui){
... some code ...
},
drag: function(event, ui){
... lots of code ...
},
stop: function(event, ui){
... some code ...
creation.texts.resize();
}
});
}
Run Code Online (Sandbox Code Playgroud)
它与chrome firefox等完美搭配.有没有人遇到过类似的问题?
更新:我刚刚在jsfiddle.net上尝试了一个小样本代码,工作正常.代码非常庞大,必须是其他一些问题.
更新2:可拖动元素似乎不可点击:我在同一页面上做了一些单独的测试,我可以使用.draggable就好了.我为故障元素添加了一个onclick警报,它没有在IE中触发.以下是该区域中元素的示例html代码:
<div id="modification-limit" style="left: 25px; top: 34.5px; width: 290px; height: 290px;">
<div class="modification-text text-active active first-text ui-draggable" id="text_1" style="left: 97px; top: 24px; z-index: 0; border: 1px dashed rgb(204, 204, 204);">
<img src="/images/creation/rotate.png" class="creation-rotate" style="display: block;">
<div class="creation-rotate-handler ui-draggable" style="display: block;"></div>
<img src="/images/creation/resize.png" style="z-index: 100; display: block;" class="creation-resize">
<div class="creation-resize-handler ui-draggable" style="z-index: 50000; display: block;" onclick="alert('clicked');">
</div><img src="/images/creation/close.png" class="creation-close-text" style="display: block;">
<div> ... </div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
为简单起见,我删除了很多html(很多'data- ..').希望问题不是我删除的代码的一部分.
我使用IE10与JQuery 1.8.3和JQuery UI 1.9.2有同样的问题
我在运行时创建了一些div控件(基于我从JSON Web服务加载的数据),并使用JQuery UI将它们设置为Draggable.但是对于IE9和IE10,他们甚至没有注册它们应该被拖动.
例如,当用户将鼠标悬停在光标上时,我将光标更改为"移动"光标.
newDivElement.draggable({
cursor: "move",
drag: function (event, ui) {
alert("Hey ! You're dragging !");
}
. . .
});
Run Code Online (Sandbox Code Playgroud)
令人烦恼的是,它适用于使用Google Chrome Frame的Chrome,Firefox或IE8.
但是在IE9或IE10上,当用户将鼠标悬停在这些div上时,没有任何反应.光标不会改变,并且拖动功能不会被启动.
出于兴趣/绝望,我尝试了其他地方的建议,在我的div和div周围的任何其他HTML元素上将-ms-touch-action css设置为"none".
它没有任何区别.
$(".cssWorkflowStep").css('-ms-touch-action', 'none');
$(".cssCanvas").css('-ms-touch-action', 'none');
$(".ui-draggable").css('-ms-touch-action', 'none');
$("#divCanvasWrapper").css('-ms-touch-action', 'none');
$("#divWorkflowDiagram").css('-ms-touch-action', 'none');
Run Code Online (Sandbox Code Playgroud)
我还使用了Chrome的"Inspect Element"菜单项,检查我的新div 是否获得了这些新的-ms-touch-action值,并且显示它们是(但是当时Chrome已经删除了这个css名称,因为它没有知道它是什么).
我没有美好的一天......
我在下一页找到了解决方案:
(支持你自己......这太荒谬了.)
我不得不将div的背景颜色设置为白色......然后使这种背景颜色不可见.然后,IE9和IE10会让我点击或拖动屏幕周围的div.
background-color:#FFFFFF; opacity:0;
Run Code Online (Sandbox Code Playgroud)
如果有人需要我,我会在酒吧,哭.