3
打破我有幾個功能是這樣的:簡單的jQuery回調在IE
$(this).find('.subnav').fadeIn(200, buttonHide);
現在,buttonHide,在這種情況下,是我在其他地方聲明的函數。一旦200毫秒fadeIn完成,我想調用該函數。
太好了。適用於FF和Safari。但在IE中,它會返回一個未定義的錯誤。事實上,我在Ariel Flesler的scrollTo中使用onAfter函數遇到了同樣的問題...什麼給了?
爲了能夠運行這些回調,IE必須做些什麼?
編輯:這裏是包含該功能的代碼。這個頁面在上面的片段之後被稱爲...我是一個小菜鳥;那是問題嗎?無論如何,一切都無法加載後,沒有什麼可以運行的。
jQuery(function($){
/* BEGIN MENU SCROLLER INITIALIZATION */
// Resets pane
$('.menuClip').scrollTo(0);
// scrolls to active item to
$('body:not(.archive) .menuClip').stop().scrollTo($('.current_page_item'));
$('.menuDown').click(function(){
$('.menuClip').stop().scrollTo('+=70px', 800, {
onAfter:function(){
buttonHide();
},
});
});
$('.menuUp').click(function(){
$('.menuClip').stop().scrollTo('-=70px', 800, {
onAfter:function(){
buttonHide();
},
});
});
/* END MENU SCROLLER INITIALIZATION */
});
$(buttonHide = function() {
setTimeout(function(){
var elemM = $(document).find('.menuClip:visible');
if (elemM[0].scrollHeight - elemM.scrollTop() == elemM.outerHeight()) {
$('.menuDown').animate({"opacity":"0"}, 200);
} else {
$('.menuDown').animate({"opacity":"1"}, 200);
}
if (elemM.scrollTop() == 0) {
$('.menuUp').animate({"opacity":"0"}, 200);
} else {
$('.menuUp').animate({"opacity":"1"}, 200);
}
}, 200);
});
顯示其餘的代碼。這幾乎毫無疑問是一個範圍,關閉或簡單的JavaScript錯誤的問題。 – 2010-03-02 20:16:32
請發表一個完整的例子。例如。使用this和buttonHide發佈一個完整的腳本。 – svinto 2010-03-02 20:16:43
只是爲了確定...是* buttonHide'定義之前*此代碼已定義? – Aaron 2010-03-02 20:16:51