7

このjsfiddleを参照してください:

http://jsfiddle.net/CB87X/6/

ボタンをクリックして押したまま、ボタンをドラッグして離します。ご覧のとおり、マウスボタンを離したときにマウスが要素の上にない場合、mouseupイベントは発生しません。したがって、私の例のスタイルは元のスタイルに戻ることはありません。クリックされた要素の上にないときにマウスボタンが離された場合、どのようにmouseupイベントを発生させますか?

編集1:ところで、私はこのサイトでいくつかの解決策を見て、それらを実装しましたが、mouseupイベントはまだ発生しませんでした。

4

4 に答える 4

10

イベントはmouseupポインタがどこにあるかに関連しており、これは予想される動作です。ボタンのスタイルを適切に設定する場合は、mouseleaveイベントもバインドします。

于 2012-09-10T09:26:26.187 に答える
4

これでうまくいくはずです。ボタン(.but)を左クリックしてドラッグするとmouseup、ページのどこにいてもクリックイベントを発生させることができます。mouseleaveページ'body'および。の場合mouseupbindedmouseleaveイベントはunbindedです。

$('.but').mousedown( function(e) {
    if (e.which == 1) {
        var $this = $(this);
        $this.bind('mouseleave', function(){
            $('body').one('mouseup', function() {
                $this.click();
            });
        });
        $this.mouseup(function() {
            $(this).unbind('mouseleave');
        });
    }
});
于 2013-04-15T20:38:51.870 に答える
2

実例を提供するためにあなたの例をフォークしました:

http://jsfiddle.net/67Rrs/2/

ボタンがmousedown編集されると、イベントは次のイベントにバインドされ、mouseupそれが発生すると、スタイルがリセットされます。

于 2012-09-10T11:23:21.173 に答える
0

$(document).on('mouseup dragend'、somefunc);を使用するだけです。

于 2018-07-19T22:23:08.960 に答える