HTML 5 拖放 - 使用自定义光标

4

我实际上正在尝试在HTML 5拖放API的dragover操作发生时使用自定义光标,但是当触发dragover事件时,我无法覆盖默认光标。以下是我尝试实现它的代码:

$("#myDiv").live('mousedown', function(ev) {
  $(this).css("cursor", "url(res/customCursor.cur), default !important");
});

由于在拖放发生时会按下鼠标,因此我尝试在目标的mousedown事件中更改光标。我还尝试在dragover事件的事件处理程序中更改光标,但即使这样也不起作用。


2
!important 在样式表或内联样式中(除了IE6)可以正常工作,但在JavaScript或jQuery中设置样式时不起作用。在这种情况下,带有!important的样式将无法在Firefox、Chrome和IE8或更早版本中应用。 - Matt Coughlin
1
为什么不使用jQuery的addClass方法创建一个类并将其应用于拖动的元素呢? - Valentin
1个回答

1
在您的样式表定义(<style>元素或.css文件)中创建一个类,例如:
.dragAndDropInProgress {
  cursor: url(....), default !important; 
}

然后,当你发出 ondragstart 信号时,将该类附加到文档主体上,确保在看到 ondragend 时再次删除它。


3
虽然这解决了!important只在样式表中起作用的问题,但它并没有解决原帖作者的问题——覆盖拖放光标的问题,似乎这种情况优先于CSS样式。 - Anson Kao

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接