当存在多个类的项时,Jquery定位

时间:2012-11-22 04:27:08

标签: javascript jquery

我有以下代码:

$(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中有四个'span.slider'。如何修改此jquery以使该功能仅适用于目标span.slider?上面的代码移动了所有四个跨度,我完全理解它为什么会这样做。我无法将其定位到用户希望移动的范围。

3 个答案:

答案 0 :(得分: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?
        }
    })  

答案 1 :(得分: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?
        }
    });
})​;​

答案 2 :(得分:1)

您可以每次绑定和取消绑定鼠标移动,如下所示

$(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');
  })

})