2010-06-21 64 views
0

我有一些構建在mootools基礎上的JavaScript,它基本上給了div一些顯示/隱藏功能。mootools Fx.slide不能正常工作IE6

window.addEvent('domready', function(){ 
/*var mySlide = new Fx.Slide('customise_text').hide() 
var mySlide2 = new Fx.Slide('customise_link').hide() 
$('customise').addEvent('click', function(e){ 
    $('customise').addClass('active'); 
    mySlide.toggle(); //show-hide login panel 
    mySlide2.toggle(); //show-hide login panel 
    e.preventDefault(); 
});*/ 

/*$('moodal_close').addEvent('click', function(){ 
    alert("1"); 
});*/ 
//alert("hello") 
var vertical_slide = $('vertical_slide'); 
var checkoutVerticalSlide = $('vertical_slide_checkout'); 
var v_toggle_checkout = $('v_toggle_checkout'); 

if(!vertical_slide || !checkoutVerticalSlide || !v_toggle_checkout) { 
    return; 
} else { 

    var status = { 
     'true': 'open', 
     'false': 'close' 
    }; 
    //-vertical 
    var myVerticalSlide = new Fx.Slide('vertical_slide').hide(); 
    $('v_toggle').addEvent('click', function(e){ 
     e.preventDefault(); 
     myVerticalSlide.toggle(); 
    }); 

    // When Vertical Slide ends its transition, we check for its status 
    // note that complete will not affect 'hide' and 'show' methods 
    myVerticalSlide.addEvent('complete', function() { 
     if(status[myVerticalSlide.open] == 'open') 
     { 
      $('v_toggle').addClass('open'); 
     } else { 
      $('v_toggle').removeClass('open'); 
     } 
    }); 

    var checkout_status = { 
     'true': 'open', 
     'false': 'close' 
    }; 

    var checkoutVerticalSlide = new Fx.Slide('vertical_slide_checkout').hide(); 
    $('v_toggle_checkout').addEvent('click', function(e) { 
     e.preventDefault(); 
     checkoutVerticalSlide.toggle(); 
    }); 

    checkoutVerticalSlide.addEvent('complete', function() { 
     if(status[checkoutVerticalSlide.open] == 'open') 
     { 
      $('v_toggle_checkout').addClass('open'); 
     } else { 
      $('v_toggle_checkout').removeClass('open'); 
     } 
    }); 
} 

在IE6中,我得到裝載了錯誤頁面,並獲得Object does not support this method or property

+0

你知道是什麼原因導致錯誤? IE6是一個很難跟蹤的問題 - 關於你唯一的選擇是撒佈alert()來查看代碼的進展情況以及失敗的地方。我會建議在每個功能的開始和結束時縮小範圍。警報('開始完成事件');警報('結束完成事件');等等然後從那裏出發。 「 – Matt 2010-06-21 15:03:28

回答

1

這可能是一個錯誤,由於這樣的事實,IE6不支持的preventDefault方法。

如果你使用這種方法(e.preventDefault()),具有以下

if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; } 

調用替換看看是否能爲你工作:)

雖然感覺溫暖和模糊爲了能夠支持所有的瀏覽器,IE6並不是一款溫暖而模糊的瀏覽器。恐怕,如果你想完全支持IE6,你會一直遇到問題。

+0

+1」如果你想完全支持IE6,你會一直遇到問題,恐怕「 – Matt 2010-06-21 15:08:50

+0

我不會不幸地發現這個功能,但它不應該是因爲它是由javascript支持的,而是整合到站點 – 2010-06-21 15:14:23

+0

不夠公平 - 在大多數情況下,您應該能夠解決這些問題,佈局可能會讓人覺得頭疼。祝一切順利! – Seidr 2010-06-21 15:17:44