我很茫然。我正在使用JQuery 1.4.2和JCrop 0.98。其他一切都运行正常,但一旦创建我就无法移动选择。当我将鼠标悬停在选择上并单击时,没有任何反应。
我有JQuery库,JCrop库和JCrop css文件都包含在内。这是一个非常干净的页面,没有其他很多东西。我不知道我是不是在我自己的javascript和css中意外地覆盖了某些东西,它打破了JCrop,两者都有相当多。但是Firebugs并没有改变任何事情。
虽然他们使用不同版本的jquery,但我的浏览和服务器上的教程工作正常。但是,当我将它们最初使用的版本替换为我使用的版本时,它们继续正常工作。所以它必须与我的javascript或css有关。
我在这里完全失去了,我正在考虑我能想到的问题,但我甚至不知道在哪里看。有没有其他人遇到过这个问题?问题是什么,你是如何解决的?我应该在哪里寻找错误或错误的覆盖?
答案 0 :(得分:14)
问题解决了:
* { margin: 0; padding: 0; position: relative; }
position: relative;
超越了JCrop对绝对定位的需求。一旦删除,它工作得很漂亮。我需要它用于其他东西,但我只是在更精确的基础上应用它。
让我永远找到它,但是,我必须把我的javascript和css带到他们的一个演示文件中,并检查每一件是否有冲突。屁股疼。
如果您遇到类似问题,请检查您是否存在类似的定位冲突。
答案 1 :(得分:14)
这可能发生的另一个原因是你忘了包含css。
答案 2 :(得分:0)
我在一个项目中遇到了问题,有人在CSS中的所有div上声明了相对位置。不幸的是,修复它需要太多的工作,所以我不得不深入挖掘代码以找到修复方法。
使用最新的jCrop库(发布时Jcrop-0.9.12)对脚本进行了一些小修改,为我解决了问题。
在jquery.Jcrop.js的第1122行附近看起来像这样:
if (Touch.support) {
$track.bind('touchstart.jcrop', Touch.createDragger('move'));
}
$img_holder.append($track);
disableHandles();
通过将$ img_holder.append($ track)更改为$ hdl_holder.append($ track)并确保$ hdl_holder是绝对位置,它为我解决了这个问题。有相对定位和zindexing的东西正在为我杀死它。
我对剧本的两处更改是:
第350行jquery.Jcrop.js:
$hdl_holder = $('<div />').width('100%').height('100%').css('zIndex', 320),
已更改为:
$hdl_holder = $('<div />').width('100%').height('100%').css({
zIndex: 320,
position: 'absolute'
}),
第1122行jquery.Jcrop.js:
$img_holder.append($track);
已更改为:
$hdl_holder.append($track);