我有以下代码:
$(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?上面的代码移动了所有四个跨度,我完全理解它为什么会这样做。我无法将其定位到用户希望移动的范围。
答案 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');
})
})