2011-07-18 147 views
2

我有一個ASP.NET MVC應用程序,我使用兩個JQuery插件:colorbox和jcrop。我的問題是與colorbox調整大小功能。在將內容加載到colorbox之後,我調用resize函數來調整colorbox的大小以更好地適應其內容。這個工程很好,除了之後我立即添加了jcrop插件。在Colorbox調整大小功能完成之前,Jcrop會稍微啓動。因此,它會扭曲jcrop的數據。這將導致裁切工具跳上最初的感動,在這個例子中:jQuery colorbox插件調整大小回調

http://jsfiddle.net/Xg84D/12/

請注意,在上面的例子中作物選擇跳躍在最初的感動,在這個問題:

jQuery Jcrop setSelect shows visually, but when clicked to move, it jumps

我已經找到了阻止這種情況的唯一辦法,就是包裹jcrop位在setTimeout()和延緩碼1秒,以確保調整大小的代碼觸發之前完成,因爲在這個例子中:

http://jsfiddle.net/Xg84D/13/

現在,當您拖動裁剪區域時,它首先不會跳轉。使用setTimeout()肯定是我不喜歡的黑客,所以我想知道是否有人有任何建議。如果只有jQuery.colorbox.resize()在其設置對象上接受了回調函數。

謝謝!

+0

我無法看到[http://jsfiddle.net/Xg84D/12/](http://jsfiddle.net/Xg84D/12/)的問題。你能提供另一個樣本嗎? – Tocco

+0

在第一個示例中,開始拖動裁剪正方形。它會跳到圖像的右下角。然後開始拖拽第二個裁剪方塊,你會發現它像黃油一樣平滑,沒有跳躍。在初始拖動後它只在第一個例子中跳過一次,但它足以令人討厭。 – Chev

+0

好的!得到它了!我可以看到問題... – Tocco

回答

2

在GitHub的colorbox開發版中,有一個提交可以解決您的問題。
看到它here

我認爲你應該在jquery.colorbox.js文件編輯功能resize接受回調參數。作爲鏈接建議。

@@ -450,7 +450,7 @@  
    });  
    };  

- publicMethod.resize = function (options) {  
+ publicMethod.resize = function (options, loadedCallback) {  
    if (open) {  
     options = options || {}; 

@@ -475,7 +475,7 @@ 

     } 

     $loaded.css({height: settings.h});   

-  publicMethod.position(settings.transition === "none" ? 0 : settings.speed);  
+  publicMethod.position(settings.transition === "none" ? 0 : settings.speed, loadedCallback); 
    } 
    }; 

祝你好運!

+0

或者,也許你可以下載它[這裏](https://github.com/jasonmoo/colorbox/zipball/91de326355a51cfcf49762a41f97479f6fc9b9a1)(壓縮) – Tocco

+0

宏偉! +1並接受:) – Chev

+0

現在這http://jsfiddle.net/Xg84D/14/奇妙地工作:D – Chev

相關問題