2009-07-06 50 views
1

我需要把从http://www.addthis.com/help/toolbox,但Rails使用Prototype自定义悬停菜单,而给出的代码是在JQuery中。我没有太多的JavaScript库经验,如果有人可以帮助它,将不胜感激!JQuery到原型为AddThis

$(function() 
{ 
    $('.custom_button, .hover_menu').mouseenter(function() 
    { 
     $('.hover_menu').fadeIn('fast'); 
     $('.custom_button').addClass('active'); 
     $(this).data('in', true); 
     $('.hover_menu').data('hidden', false); 
    }).mouseleave(function() 
    { 
     $(this).data('in', false); 
     setTimeout(hideMenu, delay); 
    }); 

    var delay = 400; 
    function hideMenu() 
    { 
     if (!$('.custom_button').data('in') && !$('.hover_menu').data('in') && !$('.hover_menu').data('hidden')) 
     { 
      $('.hover_menu').fadeOut('fast'); 
      $('.custom_button').removeClass('active'); 
      $('.hover_menu').data('hidden', true); 
     } 
    } 
}); 
+0

还没有运气还没有任何答案? – thebrokencube 2009-07-09 18:12:28

回答

2

所以,如果你不拘泥于使用Prototype,并希望使用jQuery相反,有一个名为jRails插件,它作为一个下拉更换为Prototype

不是说Prototype有任何问题,但安装jQuery可能比试图将它移植到Prototype更容易。希望有帮助(对不起,如果它不是你正在寻找的)。

编辑This page有大约jQueryRails一些有用的信息。希望有所帮助。

+0

这不是一个坏主意,问题是开发人员不希望包含比需要更多的库(原型/ Scriptaculous包装在内,我们也使用YUI) – echoblaze 2009-07-06 21:08:49

1

您可以使用jRails插件替换Prototype。或者你也可以扩展原型,以您的需求在这里是一个原型相当于数据的一个简单的例子:

Element.addMethods({ 
/** 
* Element#saveData(@element, key, value) -> @element 
* Caches given data 
* $('foo).saveData('keyName', 'Some random data'); 
* 
*/ 
saveData: function(element, key, value){ 
    if (Object.isUndefined(this['ATMCCache']) || !Object.isHash(this['ATMCCache'])){ 
     this['ATMCCache'] = $H(); 
    } 
    this['ATMCCache'].set(key,value); 
    return element; 
}, 
/** 
* Element#getData(@element, key) -> Value or Hash 
* Returns requested key or entire hash 
* $('foo).getData('keyName'); 
* 
*/ 
getData: function(element, key){ 
    return this['ATMCCache'].get(key) || this['ATMCCache']; 
}, 
/** 
* Element#hasData(@element) -> Boolean 
* Returns Boolean if element has any data stored 
* $('foo).hasData(); 
* 
*/ 
hasData: function(){ 
    return !Object.isUndefined(this['ATMCCache']); 
}}); 

只需按照文档我确信你可以从这里接管并修改或做你的愿望与此代码。