Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.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
Jquery 更改按住按钮上的光标?_Jquery_Html - Fatal编程技术网

Jquery 更改按住按钮上的光标?

Jquery 更改按住按钮上的光标?,jquery,html,Jquery,Html,所以我想把光标从 #sideBar ul li .template{ cursor:pointer; } 移动光标;当用户拖动时…我是否可以在jQuery或html中使用某些东西来实现此操作?按住鼠标按钮可以尝试使用jQuery将css更改绑定到事件。然后在用户完成拖动后,使用mouseup()将光标更改回原来的位置 e、 g: 试着这样做: someFunc({ onstart: function(){ $(document.body).css( 'cursor', 'mov

所以我想把光标从

#sideBar ul li .template{
 cursor:pointer;
}

移动光标;当用户拖动时…我是否可以在jQuery或html中使用某些东西来实现此操作?按住鼠标按钮可以尝试使用jQuery将css更改绑定到事件。然后在用户完成拖动后,使用mouseup()将光标更改回原来的位置

e、 g:


试着这样做:

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' );
  });

当然,你绝对可以做到。Jquery函数可以设置为处理程序,那么您只需要更改css。这里有一个


不要更改javascript代码中的css,而是只更改一个类,这将使用您想要的不同内容更新您的元素。我添加了一个:hover伪类,因为我不确定没有它,
cursor
是否可以工作

此外,live适用于将来添加的任何元素,而bind不适用

Css:

Javascript:

$("#sideBar ul li .template").live("mousedown", function () {
    $(this).addClass("mouseDown");
}).live("mouseup", function () {
    $(this).removeClass("mouseDown");
});

我不会重复其他人发布的基本相同的代码,但不应该仅仅在mousedown事件上触发适当的拖动

在mousedown上,您应该标记可能的拖动,并保存发生mousedown的鼠标坐标,然后附加mousemove处理程序。(这样,当您只在拖动过程中对鼠标移动真正感兴趣时,就不会一直跟踪鼠标移动)

只有当保存的mousedown坐标和当前鼠标坐标之间的距离大于某个增量时,mousemove处理程序才应更改被拖动元素的CSS类。这样可以防止每次短暂/意外的单击看起来都像拖动

最后,在拖放时(mouseup),然后根据需要处理拖放事件,并清除可能的拖动标志和保存的mousedown坐标


观察一个操作系统桌面,点击并按住图标,不移动,然后开始移动——你会看到这个轮廓就是它的行为方式。

只需添加到找到它的图标中即可。从jQuery 1.7开始,现在对.live()方法进行了去润滑处理。你可以在它的地方使用这个方法。
$('.someElement').mousedown(function()
{
   $(this).css('cursor', 'move');
});
$('.someElement').mouseup(function()
{ 
   $(this).css('cursor', 'pointer');
});
#sideBar ul li .template{
 cursor:pointer;
}

#sideBar ul li .template.mouseDown:hover{
 cursor:auto; /* or whatever cursor */
}
$("#sideBar ul li .template").live("mousedown", function () {
    $(this).addClass("mouseDown");
}).live("mouseup", function () {
    $(this).removeClass("mouseDown");
});