所以我想从
更改光标#sideBar ul li .template{
cursor:pointer;
}
可能是游标:移动;当用户拖动时...有什么我可以在jQuery或html中使用,以实现这一点你按住鼠标按钮
答案 0 :(得分:13)
不要改变你的javascript代码中的css,而是让它只改变一个类,这将使用你想要的任意数量的东西更新你的元素。我添加了一个:hover伪类,因为我不确定cursor
是否可以在没有它的情况下工作。
此外,live适用于将来添加的任何元素,而bind则不适用。
的CSS:
#sideBar ul li .template{
cursor:pointer;
}
#sideBar ul li .template.mouseDown:hover{
cursor:auto; /* or whatever cursor */
}
使用Javascript:
$("#sideBar ul li .template").live("mousedown", function () {
$(this).addClass("mouseDown");
}).live("mouseup", function () {
$(this).removeClass("mouseDown");
});
答案 1 :(得分:2)
您可以尝试使用jQuery将css更改绑定到mousedown事件。然后使用mouseup()在用户完成拖动时更改光标。
e.g:
$(document).ready(function() {
$('#sideBar ul li .template').mousedown(function() {
$(this).css('cursor', 'move');
});
$('#sideBar ul li .template').mouseup(function() {
$(this).css('cursor', 'pointer');
});
});
答案 2 :(得分:2)
当然,你绝对可以做到这一点。 Jquery .mouseDown函数可以设置为处理程序,然后您只需要更改css。继承人example
$('.someElement').mousedown(function()
{
$(this).css('cursor', 'move');
});
$('.someElement').mouseup(function()
{
$(this).css('cursor', 'pointer');
});
答案 3 :(得分:2)
我不打算重复其他人发布的相同代码,但不应仅仅通过mousedown事件触发正确的拖拽。
在mousedown上,您应该标记可能的拖动并将鼠标坐标保存在mousedown发生的位置,然后附加一个mousemove处理程序。 (这样,当您在拖动过程中只对它们感兴趣时,不会经常跟踪鼠标移动)
只有当保存的mousedown坐标与当前鼠标坐标之间的距离大于某个delta时,mousemove处理程序才应更改拖动元素的CSS类。这可以防止每次短暂/意外点击看起来像拖动。
最后,在drop(mouseup)上,然后根据需要处理drop事件,并清除Possible Drag标志和保存的mousedown坐标。
观看操作系统桌面点击并按住图标,不移动,然后开始移动 - 您将看到此轮廓是它的行为方式。
答案 4 :(得分:1)
尝试这样的事情:
someFunc({
onstart: function(){
$(document.body).css( 'cursor', 'move' );
},
onstop: function(){
$(document.body).css( 'cursor', 'auto' );
}
});
拖动开始时必须触发onstart
,结束时必须onstop
。
如果您要创建自定义拖动功能,则可以使用mousedown
和mouseup
个事件:
$(el)
.mousedown(function(){
$(this).css( 'cursor', 'move' );
})
.mouseup(function(){
$(this).css( 'cursor', 'auto' );
});