我有<div>
一堆文字。这<div>
也有一个.click()
使用 jQuery 的事件。
我遇到的问题是.click()
在选择/突出显示文本时被触发。甚至在松开鼠标之前按住鼠标几秒钟。
这是一个显示问题的 JSFiddle:http: //jsfiddle.net/ym5JX/
我期望的行为是突出显示文本与单击元素不同。
我有<div>
一堆文字。这<div>
也有一个.click()
使用 jQuery 的事件。
我遇到的问题是.click()
在选择/突出显示文本时被触发。甚至在松开鼠标之前按住鼠标几秒钟。
这是一个显示问题的 JSFiddle:http: //jsfiddle.net/ym5JX/
我期望的行为是突出显示文本与单击元素不同。
那是因为 aclick
是 amousedown
后跟 a mouseup
。我的建议是检查处理程序getSelection
内部click
。如果已设置,则您选择了某些内容,否则您只需单击即可。
$('#click').click(function() {
var sel = getSelection().toString();
if(!sel){
alert("clicked");
}
});
演示:http: //jsfiddle.net/ym5JX/3/
正如我在评论中发布的那样,mosuedown + mouseup = click
这正是突出显示的作用。有解决方法..见下文,
var isClick = 0;
$('#click').click(function() {
if (isClick == 1) {
alert("clicked");
}
}).mousedown(function () {
isClick = 1;
}).mousemove(function () {
isClick = 0;
});
jsFiddle:http: //jsfiddle.net/ym5JX/8/
$('#click').click( function()
{
if ( getSelection() == "" )
{
alert("clicked");
}
});