我有一個客戶想要在集中彈出窗口中打開各種大小的圖像。我試圖讓他們使用FancyBox,但他們不希望插頁式演示文稿,所以...將AJAX調用添加到功能觸發的彈出窗口阻止程序
我最初打開一個通用的彈出窗口調整大小和集中onload基於圖像大小,但他們不喜歡這樣的轉變我添加了一個PHP腳本來回顯大小,並使用jQuery來獲取大小信息,以便進入彈出窗口。
但是看起來這個延遲導致了所有的彈出窗口阻止程序。
這裏是JS
$("#portfolioBigPic").click(function() {
var src = $("#portfolioBigPic").attr('src');
var ar = src.split('/');
var fname = ar.pop();
fname = '/g/portfolio/clients/big/' + fname;
$.get("imgsize.php", { i: fname}, function(data){
var dim = data.split(",");
popit(fname,dim[0],dim[1]);
});
});
function popit(img,w,h) {
var features = 'width='+w+',height='+h+', toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=0, resizable=1,';
var left = (screen.width/2)-(w/2);
var top = 0;
features += 'top='+top+',left='+left;
bigpic = window.open('portfolioBigPic.php?img='+img, 'bigpic',features);
bigpic.focus();
}
躲着阻滯劑和失敗之間的唯一區別是,我添加了AJAX不用彷徨,並用它來指定w和h。
有關如何避免這種情況的任何想法?也許我應該使用PHP來獲得所有大圖片的寬度和高度,並在這個頁面加載時寫出它們的JS數組?我是否正確地認爲由於獲取數據而造成的延遲會阻止阻擋者?
想法?任何建議非常感謝。
JG
//編輯 - 添加我的決心 每尖刻的回答,我需要移動POPIT()調用出來AJAX調用成功處理程序,使發生在用戶點擊的情況下調用事件。
所以我意識到,當我的小拇指點擊設置大圖像(#portfolioBigPic)的預覽時,我可以在那一刻查找完整大小的圖片。所以我將AJAX大小移到了大拇指的click()。
HTH有人。
我不確定在這種情況下究竟是什麼'插頁式'意味着什麼,但是您正在這裏重新發明輪子。 已經有很多可定製的jquery插件了。我確實使用這個在彈出窗口中顯示圖像。 http://craigsworks.com/projects/qtip/ – 2010-06-06 17:24:19
謝謝你的鏈接Nikita。將檢查出來。 – jerrygarciuh 2010-06-06 18:10:59