使用jquery ui可调整大小的鬼和网格在一起

时间:2010-12-08 22:18:39

标签: jquery jquery-ui

有没有办法同时使用jquery视觉反馈幽灵和捕捉网格功能?如果我尝试添加两个鬼似乎覆盖网格功能。感谢

2 个答案:

答案 0 :(得分:1)

所以我为这个问题提交了一个修复jquery ui,它尚未被接受,据说它是一个不完整的解决方案。如果您对此重构有任何建议,将不胜感激。但是如果遇到同样的问题,我的修复就是在ui.resizable的_mouseStop函数中再次添加网格逻辑。只需在ui.resizable.js

的第322行下面添加此代码
if(this.options.grid && this.options.ghost){
   var o = self.options, cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey;
   o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid;
   var ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1);

if (/^(se|s|e)$/.test(a)) {
   self.size.width = os.width + ox;
   self.size.height = os.height + oy;
}
else if (/^(ne)$/.test(a)) {
   self.size.width = os.width + ox;
   self.size.height = os.height + oy;
   self.position.top = op.top - oy;
}
else if (/^(sw)$/.test(a)) {
   self.size.width = os.width + ox;
   self.size.height = os.height + oy;
   self.position.left = op.left - ox;
}
else {
   self.size.width = os.width + ox;
   self.size.height = os.height + oy;
   self.position.top = op.top - oy;
   self.position.left = op.left - ox;
}
}

答案 1 :(得分:0)

简短回答,它是bug

该错误的答案之一建议将ghost插件移动到jquery ui JS文件中可调整大小的扩展的顶部。我试过了,效果更好。