我有<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");
}
});