0

私は次のコードを持っています:

$(function () {
        var target = $('span.slider') //can I make the variable apply to the target span?

        target.mousedown(function() { 
              sliding = true 
        })
        $(document).mouseup(function() {
             sliding = false 
        })
        $(document).mousemove(function(e) { 
            if(sliding){ 
              target.css('left', e.pageX) //do I isolate here?
            }
        })  
    })

私のhtmlには4つの「span.slider」があります。機能がターゲットspan.sliderにのみ適用されるように、このjqueryを変更するにはどうすればよいですか?上記のコードは4つのスパンすべてを移動しますが、その理由は完全に理解しています。ユーザーが移動したいスパンだけにターゲットを設定するのに問題があります。

4

3 に答える 3

1

それにクラスを追加してから、クラスと照合してみてください

    target.mousedown(function() { 
          sliding = true;
          $(this).addClass('sliding'); 
    })
    $(document).mouseup(function() {
         sliding = false; 
          target.removeClass('sliding'); 
    })
    $(document).mousemove(function(e) { 
        if(sliding){ 
          target.filter('.sliding').css('left', e.pageX) //do I isolate here?
        }
    })  
于 2012-11-22T04:30:56.957 に答える
1

これを試して:

$(function() {
    var target = $('span.slider'); //can I make the variable apply to the target span?
    var targetToMove;
    target.mousedown(function() {
        sliding = true;
        targetToMove = $(this);
    });
    $(document).mouseup(function() {
        sliding = false;
    });
    $(document).mousemove(function(e) {
        if (sliding) {
            targetToMove.css('left', e.pageX); //do I isolate here?
        }
    });
})​;​
于 2012-11-22T04:32:48.523 に答える
1

次のように、毎回mousemoveをバインドおよびバインド解除できます。

$(function() {
  var target = $('span.slider');
  target.on('mousedown', function(e) {
    var $el = $(this)
    $(document).mousemove(function(e) {
      $el.css('left', e.pageX) 
    })
  }).on('mouseup', function() {
    $(document).off('mousemove');
  })

})
于 2012-11-22T04:33:00.413 に答える