たくさん<div>
のテキストが入った があります。これには、 jQuery を使用し<div>
たイベントもあります。.click()
私が抱えている問題は、.click()
テキストを選択/強調表示するときにトリガーされることです。マウスを数秒間押したままにしてから離すこともできます。
問題を示す JSFiddle は次のとおりです: http://jsfiddle.net/ym5JX/
私が期待する動作は、テキストの強調表示が要素をクリックすることと同じではないということです。
たくさん<div>
のテキストが入った があります。これには、 jQuery を使用し<div>
たイベントもあります。.click()
私が抱えている問題は、.click()
テキストを選択/強調表示するときにトリガーされることです。マウスを数秒間押したままにしてから離すこともできます。
問題を示す JSFiddle は次のとおりです: http://jsfiddle.net/ym5JX/
私が期待する動作は、テキストの強調表示が要素をクリックすることと同じではないということです。
これclick
は、 a の後に a がmousedown
続くためmouseup
です。私の提案は、ハンドラーgetSelection
の内部をチェックすることです。click
設定されている場合は何かを選択しており、それ以外の場合は単にクリックしただけです。
$('#click').click(function() {
var sel = getSelection().toString();
if(!sel){
alert("clicked");
}
});
コメントに投稿したように、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");
}
});