2013-04-05 178 views
0
  1. 我創建了slideoutmenu,如果我使用MooTools:// MooTools,http://mootools.net,My Object Oriented(JavaScript)Tools輕觸/不使用光標,它會彈出/中。 Copyright(c)2006-2009 Valerio Proietti,http://mad4milk.net,MIT Style License。 //核心+ FX.Scroll +資產+事件代表團

我的腳本的一部分:jQuery與MooTools的衝突

window.addEvent('domready', function() { 
new SlideoutMenu(); 



initialize: function() 
{ 
    // FF2 Mac screws up the menu display. give the m the basic menu 
    if (Browser.Platform.mac && Browser.Engine.gecko && Browser.Engine.version == 18) { 
     $('menu').removeClass('js_live'); 
     return; 
    } 

    // iPhone should have normal menu 
    if (Browser.Platform.ipod) { 
     $('menu').removeClass('js_live'); 
     return; 
    } 

    this.bg_div = $('menu'); 
    this.menu_div = $$('#menu #opts')[0]; 

    this.logo_lnk = $$('#logo a')[0]; 
    if (this.logo_lnk.hasClass('home')) { 
     this.is_homepage = true; 
    } 

    var rbsEasing = new Fx.Transition(Fx.Transitions.Expo, 4);  

    this.is_open = false; 

    this.bgEffect = new Fx.Tween(this.bg_div, { 
     unit: '%', 
     property: 'width', 
     duration: 650, 
     transition: rbsEasing.easeOut, 
     onComplete:this.bgEffectComplete.bind(this) 
    }); 

    this.menuEffect = new Fx.Tween(this.menu_div, { 
     property: 'left', 
     transition: rbsEasing.easeOut, 
     duration: 650 
    }); 

    $('logo').addEvent('mouseenter', this.showMenu.bind(this)); 

    this.mouseBindCallback = this.moveMoveCallback.bind(this); 
}, 

bgEffectComplete: function() 
{ 
    if (this.is_open === false) { 
     document.addEvent('mousemove', this.mouseBindCallback); 
    } 
    this.is_open = !this.is_open; 
}, 

showMenu: function() 
{ 
    if (this.is_open === true) { 
     return; 
    } 

    this.bgEffect.start(70); 
    this.menuEffect.start(600, $('logo').getPosition().x); 

    this.logo_lnk.addClass('active'); 

    if (this.is_homepage) { 
     this.logo_lnk.removeClass('home'); 
    } 
}, 

hideMenu: function() 
{ 
    this.bgEffect.start(0); 
    this.menuEffect.start(600); 

    this.logo_lnk.removeClass('active'); 

    if (this.is_homepage) { 
     this.logo_lnk.addClass('home'); 
    } 
}, 

moveMoveCallback: function(e) 
{ 
    var close_right = this.menu_div.getPosition().x + 370; 
    if (e.page.x > close_right && e.page.y > 80 && this.is_open === true) { 
     document.removeEvent('mousemove', this.mouseBindCallback); 
     this.hideMenu(); 
    } 
} 

菜單的工作沒有任何問題,那麼

  1. 我創建了一個使用jquery的照片幻燈片庫,當然菜單停止工作。 當我刪除jquery時,它再次正常工作。 有很多網站,它說有javascript和jQuery的之間的衝突,它一般不建議同時使用這些,雖然有與

    jQuery.noConflict()的溶液;

而且我已經在MooTools的文件jsc.js $ j和我自己創建了一個改變$後應補充。最後,它的工作,但很奇怪,菜單會彈出,但它的元素不再對齊,它不會消失,當我將光標移開... 我有一種感覺,有一個簡單的解決方案,這是因爲我知識的缺乏在這裏我要求你的幫助

+0

「... JavaScript和jQuery之間的衝突」沒有意義 - jQuery **是** JavaScript代碼。 – Pointy 2013-04-05 15:10:27

+0

mootools和jQuery的JavaScript庫衝突 – niux 2013-04-05 15:13:55

回答

1

沒關係,解決了它與

(函數( $){/ *你的類文件在這裏* /})(document.id);

1

嘗試在mootools的腳本中的所有$(一元!不是2 $$),以取代以document.id

+0

我用(函數($){/ *你的類文件在這裏* /})(document.id)包裝我的JavaScript,它的工作,但謝謝你的意見 – niux 2013-04-05 23:06:46