1

わかりましたので、以下に示すように div のグリッドがあります。

<div class="check1"></div>
<div class="check1"></div><div style="clear:both;"></div>
<div class="check1"></div>
<div class="check1"></div>

私のjqueryでは、divの1つがクリックされたかどうかを確認します:

$('.check1').mousedown(function(){
    $(this).css('background-color','blue');
});

私がやりたいのは、divがクリックされて押し下げられたが、カーソルが別のdivの上に移動した場合、そのdivの色を変更したいということです。この例を試してみましたが、マウスダウンイベントが呼び出されたかどうかに関係なく、マウスオーバーイベントが呼び出されます。

$('.check1').mousedown(function(){
    $(this).css('background-color','blue');

    $('.check1').mouseover(function(){
        $(this).css('background-color', 'blue');
    });
});

これは可能ですか?もしそうなら、私は何を間違っていますか/何を変更する必要がありますか?

4

4 に答える 4

5

シンプルなflagコンセプトを使用できます

コード:

var flag = 0;
$('.check1').mousedown(function () {
    $(this).css('background-color', 'blue');
    flag = 1;
}).mouseup(function () {
    flag = 0;
}).mouseover(function () {
    if (flag) {
        $(this).css('background-color', 'blue');
    }
});

リンクのテスト

于 2013-06-21T09:34:59.177 に答える
2

最短の方法:)

$('.check1').on('mouseover mousedown', function(e){
    if (e.which == 1){
        $(this).css('background-color', 'blue');
    }
});

http://jsfiddle.net/bLARP/

于 2013-06-21T09:57:29.623 に答える
0

これを試して :

$('.check1').mousedown(function(){
    $(this).css({'background-color','blue'});

    $(this).bind('mouseover', function(){
        $(this).css({'background-color':'blue'});
    }).bind('mouseout', function(){
        $(this).css({'background-color':'green'});
    });
});
于 2013-06-21T09:35:41.947 に答える