2014-03-26 52 views
1

我改變了整個問題,因爲我沒有在第一次運行時提供足夠的信息:感謝@Sergio。在IE9中沒有觸發MooTools事件(僅在刷新後)

有很多東西在IE中不起作用。

當我做addEvent('domReady')....它更糟糕(它不會被執行,但如果我刷新頁面...它的作品)。

有沒有適當的方式來處理在MooTools中的IE的東西?

注: 對整個地球上的每個瀏覽器工作,除了IE *

編輯:添加AJAX車的完整源代碼。 此代碼是正確的,它僅僅是出於理解的目的: ajax_cart.js

var AjaxCart = new Class({ 
    Implements: Options, 
    cartDiv: null, 
    options: { 
     elem_id: 'shopping-cart-icon', 
     event: 'mouseenter', 
     url: 'changed_url_but_it's_correct='+(new Date().getTime()) 
    }, 
var AjaxCart = new Class({ 
    Implements: Options, 
    cartDiv: null, 
    options: { 
     elem_id: 'shopping-cart-icon', 
     event: 'mouseenter', 
     url: '/changed_url_but_it's_correct='+(new Date().getTime()) 
    }, 
var AjaxCart = new Class({ 
    Implements: Options, 
    cartDiv: null, 
    options: { 
     elem_id: 'shopping-cart-icon', 
     event: 'mouseenter', 
     url: '/changed_url_but_it's_correct'+(new Date().getTime()) 
    }, 
    initialize: function() { 
     var cart = this; 
     this.elem = $(this.options.elem_id); 
     if (this.elem) { 
      this.elem.addEvent(this.options.event, function() { 
       cart.viewCart(); 
      }); 
     } 
    }, 
    getCart: function() { 
     var cart = this; 
     var myHTMLRequest = new Request.HTML({ 
      url: cart.options.url, 
      onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) { 
       //console.log(responseHTML); 
       if (!cart.cartDiv) { 
        cart.cartDiv = new Element('div', {'class':'ajax-cart'}); 
        cart.cartDiv.fade('hide'); 
        cart.cartDiv.inject(cart.elem); 
        cart.cartDiv.addEvent('mouseleave',function() { 
         this.fade('out'); 
        }); 
       } 
       cart.cartDiv.innerHTML= responseHTML; 
       cart.cartDiv.fade('in'); 
      }, 
      onFailure: function(xhr) { 
       console.log(xhr.responseText); 
      } 
     }).get(); 
    }, 
    viewCart: function() { 
     if (this.cartDiv) { 
      this.cartDiv.fade('in'); 
     } else { 
      this.getCart(); 
     } 
    } 
}); 

此代碼對IE以外的瀏覽器每次,刷新頁面後才能,它的工作原理。 index.html中

if(Browser.ie) { 

       var ajaxCart; 
       window.addEvent('load', function() { 
        ajaxCart = new AjaxCart({'elem_id':'shopping-cart-icon'}); 
       }); 
      } else { 
      var ajaxCart; 
       window.addEvent('load', function() { 
       ajaxCart = new AjaxCart({'elem_id':'shopping-cart-icon'}); 
      }); 
      } 
+0

MooTools不是我覺得這裏的問題。你能更精確地發佈你的代碼嗎?順便說一句,試試這個:__http://jsfiddle.net/D9nen/show__ – Sergio

+0

不錯,你添加了更多的具體信息。還有2個問題:哪個IE壞了(是IE11?)question2:你正在使用哪個Mootools版本? – Sergio

+0

MooTools版本:mootools-core-1.4.5-full-compat.js,它只是在IE8中不工作,可能在任何其他IE版本<9中,尚未嘗試過。 –

回答

0

見我猜有沒有辦法解決,所以我必須找到解決類似的問題。 我做了什麼:

因爲我的問題是通過刷新頁面解決的,所以我在元標記中這樣做了。

<meta http-equiv="Expires" content="-1" /> 

它可能會幫助別人,當它來解決IE刷新錯誤。

+0

給我-1的唯一答案,制定了滿足截止日期......幹得好先生 –

1

在Internet Explorer(即IE6)的某些版本的腳本代碼可以被執行兩次,如果內容類型元標記聲明的腳本標記後放。

內容類型應始終在任何腳本標記之前聲明。

這裏http://mootools.net/docs/core/Utilities/DOMReady

+0

這是否會影響IE9? –