我在JSFIDDLE上做了一个演示
更新 this version适用于FF,但不适用于Chrome ..
更新2 此website似乎有一个可行的解决方案。
我的Javascript如下
$("#click").live({
mousedown: function() {
this.addClass("closed");
},
mouseup: function() {
this.removeClass("closed");
}
});
和CSS如下
.closed {
cursor: url(https://mail.google.com/mail/images/2/closedhand.cur), default !important;
}
但是为什么光标在使用这个jQuery代码时鼠标成为一个封闭的手? 非常感谢! 任何帮助将不胜感激!
答案 0 :(得分:5)
您只能使用CSS获取鼠标光标:
/* Standard cursors */
.element { cursor: grab; }
.element:active { cursor: grabbing; }
/* Custom cursors */
.element { cursor: url('open-hand.png'), auto; }
.element:active { cursor: url('closed-hand.png'), auto; }
答案 1 :(得分:4)
2016年更新:
需要在我正在研究的jQuery滑块插件中执行此操作。我所做的是在CSS中定义游标,然后使用jQuery在触摸/鼠标事件上添加/删除它们。
的CSS:
.element:hover{
cursor: move;
cursor: -webkit-grab;
cursor: grab;
}
.element.grabbing {
cursor: grabbing;
cursor: -webkit-grabbing;
}
JS:
$(".element").on("mousedown touchstart", function(e) {
$(this).addClass('grabbing')
})
$(".element").on("mouseup touchend", function(e) {
$(this).removeClass('grabbing')
})
答案 2 :(得分:1)
这有效(至少在FF中):http://jsfiddle.net/uZ377/21/
我改变了现场绑定,不知道为什么,但是生活没有用。另外,我在jQuery-function中包装了this
。
答案 3 :(得分:1)
答案 4 :(得分:1)
$(document).ready(function() {
$(".surface").mouseup(function(){
$(".surface").css( "cursor","crosshair");
}).mousedown(function(){
$(".surface").css( "cursor","wait");
});
});
make in css .surface{cursor:crosshair;}
如果您想要鼠标按下/向上,只需将光标更改为手动向上/向下图标。
希望这会有所帮助。
答案 5 :(得分:0)
实际上看起来像是绑定mousedown和mouseup事件的live方法有问题。通过分离这两个元素,它似乎工作正常。
无论如何,所有浏览器都不支持cursor属性的URL部分。以Chrome和Firefox为例,它对我有效,但在Opera中没有,因为据我所知,它不支持它。
答案 6 :(得分:0)
您使用的语法直到1.4.3(documented here)才会被引入,您的jsFiddle使用1.4.2。您的jsFiddle还会向this
添加一个课程,而不是$(this)
。
但是我也不确定光标CSS如何对mousedown和mouseup做出反应 - 我有一种感觉可能在某些浏览器中受到限制,有点摆弄让它在mouseup上运行,但不是mousedown - 这看起来很奇怪
答案 7 :(得分:0)
添加event.preventDefault()后开始在Safari中工作 http://jsfiddle.net/uZ377/49/