Javascript 使用jQuery实现列大小调整
我正在尝试使用jQuery实现列大小调整,如下所示(请参阅) 这是我的JS代码Javascript 使用jQuery实现列大小调整,javascript,jquery,Javascript,Jquery,我正在尝试使用jQuery实现列大小调整,如下所示(请参阅) 这是我的JS代码 function resizeEvents(selector) { function XY(e, ele) { var parentOffset = ele.parent().offset(); return e.pageX - parentOffset.left; } var checkPos;
function resizeEvents(selector) {
function XY(e, ele) {
var parentOffset = ele.parent().offset();
return e.pageX - parentOffset.left;
}
var checkPos;
$(selector).on('mousedown', function () {
$(this).attr('init', true);
return false;
});
$(selector).on('mouseup', function () {
$(this).attr('init', false);
});
$(selector).closest('div').on('mousemove', function (e) {
var inits = $(this).find('.resize').filter(function(){
return $(this).attr('init') == true;
});
if (inits.length > 0) {
var pos = XY(e, inits.first());
if (!checkPos) {
checkPos = pos;
return false;
} else {
var moved = checkPos - pos, a = moved > 0 ? 1 : -1 ;
th.prevAll().each(function () {
if (!$(this).hasClass('.resize')) {
$(this).width($(this).width() + a);
}
});
th.nextAll().each(function () {
if (!$(this).hasClass('.resize')) {
$(this).width($(this).width() - a);
}
});
}
}
});
}
resizeEvents('.resize');
但这不起作用,我的问题是
mousemove是否正确编写,是否正确定义正确的元素
我为您修复了代码:
function resizeEvents(selector) {
var selected;
$(selector).on('mousedown', function () {
selected = $(this);
return false;
});
$(document).mouseup(function () {
selected = null;
}).mousemove(function(e) {
var target = $(e.target);
var table = target.parents('.table');
if (table.length && selected) {
var x = e.pageX - table.offset().left;
var splitter_x = selected.offset().left;
var prev = selected.prev();
var next = selected.next();
prev.width(prev.width() + (x - splitter_x));
next.width(next.width() - (x - splitter_x));
}
});
}
如果它不起作用,那么它的编写就不正确,不是吗?你的代码对我来说毫无意义,我无法指出哪里是错的。