5

我不知所措。我正在使用 JQuery 1.4.2 和 JCrop 0.98。其他一切都很好,但是一旦创建我就无法移动选择。当我将鼠标悬停在选择上并单击时,什么也没有发生。

我包含了 JQuery 库、JCrop 库和 JCrop css 文件。这是一个非常干净的页面,没有太多其他内容。我不知道我是否不小心覆盖了我自己的 javascript 和 css 中的某些内容,从而破坏了 JCrop,两者都有。但 Firebugs 并没有出现任何问题。

这些教程适用于我的浏览器和我的服务器,尽管它们确实使用了不同版本的 jquery。但是,当我将他们最初使用的版本替换为我使用的版本时,它们仍然可以正常工作。所以它必须与我的javascript或css有关。

我在这里完全不知所措,我正在寻找我能想到的所有问题,但我什至不知道去哪里找。以前有没有其他人遇到过这个问题?问题是什么,你是如何解决的?我应该在哪里寻找错误或错误的覆盖?

4

3 回答 3

14

发生这种情况的另一个原因是如果您忘记包含 css。

于 2012-10-11T16:05:24.147 回答
14

问题解决了:

* { margin: 0; padding: 0; position: relative; }

position: relative;压倒了 JCrop 对绝对定位的需求。一旦删除,它工作得很好。我需要它来做其他事情,但我只是在更精确的基础上应用它。

我花了很长时间才找到它,不得不将我的 javascript 和 css 都放入他们的一个演示文件中,并检查每个部分是否存在冲突。屁股疼。

如果您遇到类似的问题,请检查您是否有类似的定位冲突。

于 2010-08-01T06:47:56.410 回答
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);
于 2013-05-23T15:46:45.903 回答