6

ユーザーが要素をクリックして、同じ要素を強調表示できるようにしたい。クリックするとクリックのように動作するはずですが、マウスダウンしてテキストを選択すると、クリックのように動作しないはずです (それはクリックではないため)。jQueryは、マウスダウンしてから100万年後にマウスアップするとクリックを発生させます。私はあなたができることを理解しています:

$myElm.on("mousedown.tmp", function () {
    $myElm.off("mouTsedown.tmp");
    $myElm.on("mouseup", function () {
        $myElm.off("mouseup.tmp")
    }
    }); // 

スペルを修正し、他のイベント ハンドラを考慮します。大雑把に言えば。

プラグインは使いたくない。

4

3 に答える 3

1
var mydate = new Date()
var downtime;

$('#div').on('mousedown', function() {
    downtime = mydate.getTime();
});

$('#div').on('mouseup', function() {
    if((mydate.getTime() - downtime) < 500) {
        //perform click function 
    }
    else {
        //highlight text
    }
});
于 2013-11-15T17:24:03.870 に答える
0

マウスダウン時にマウスの位置を追跡します。マウスアップ時のマウス位置と比較してください。マウスが一定数のピクセルを移動した場合、デフォルトのイベントを防止します。

event.preventDefault();
于 2013-11-15T17:49:43.650 に答える