有原因的fancybox功能的fancybox加載動畫不會觸發
$.fancybox.showActivity();
在我的腳本拋出一個錯誤什麼特別的原因?是否有需要調用函數的特定順序?該功能用於在內容加載到彈出窗口之前顯示加載圖像。這裏是我的代碼:
$(".info_button").click(function() {
var pictid_browse = $(this).parent().find('#pictid').val();
$.fancybox.showActivity();
$.ajax({
url: "ajax.html",
type: "POST",
async:false,
data: ({f:"get_info",pictid:pictid_browse}),
success: function(data){
$.fancybox({
'autoDimensions' : false,
'width' : 950,
'height' : 'auto',
'transitionIn' : 'none',
'transitionOut' : 'none'
});
$.fancybox({content:data,'autoDimensions':true,'scrolling':'no',});
}
});
return false;
});
我得到的錯誤是:
Uncaught TypeError: Object function() {
F.open.apply(this, arguments);
} has no method 'showActivity'
或
TypeError: 'undefined' is not a function (evaluating '$.fancybox.showActivity()')
的fancybox版本:2.1.3
UPDATE:
我不知道是怎麼回事,但如果我放在
$.fancybox.showLoading();
的
$(".info_button").click(function() {
之外,那麼它觸發並顯示動畫。但我需要它,一旦一類「.info_button」我點擊
似乎下面的解決方案並沒有解決問題的項目發生或者:
$(".info_button").bind('click', function (e) {
e.stopPropagation(); e.preventDefault();
}
研究表明,負載被觸發,如果下面的代碼被刪除:
$.fancybox({
content:data,
'autoDimensions' : true,
'width' : 'auto',
'height' : 'auto',
'transitionIn' : 'none',
'transitionOut' : 'none',
'scrolling':'no'
});
這可能意味着,包括AJAX功能內時的fancybox不正常工作,但是爲什麼,我不知道
更新我的回答,請它,如果你更新你的問題發表評論。 – p1100i
你現在是否看到任何類型的錯誤?也許嘗試註釋掉.click函數中的所有內容,只留下'$ .fancybox.showLoading();'行。怎麼了? – p1100i
但是,如果您查看Firebugs控制檯(https://getfirebug.com/),是否看到任何錯誤消息(沒有評論所有內容)?這可能是因爲'data'不適合fancybox而且它出錯了。或者如果你運行這個本地ajax調用將立即完成,所以你不能期望看到加載圖像。我幫你解決了核心問題,而且這個網站不適合輔導某人。 – p1100i