Velmi zřídka má vývojář schopnost pracovat pouze s jedním rámcem. Vývojář se často potřebuje pohybovat mezi MooTools a jQuery. Jak si dokážete představit, může to způsobit, že vývojáři budou zacyklení kvůli rozdílům v syntaxi. Jedním z malých rozdílů, které se často používají, je attr() a css() jQuery oproti set() a setStyle() MooTools. Implementoval jsem css() a attr() do MooTools pro uživatele jQuery.
JavaScriptový kód MooTools
/* implement */ Element.implement({ css: function(property,value) { var type = $type(property); if(value == undefined && type != 'object') { return this.getStyle(property); } else { var pvs = property; if(type != 'object') { pvs = {}; pvs[property] = value; } return this.setStyles(pvs); } }, attr: function(property,value) { var type = $type(property); if(value == undefined && type != 'object') { return this.get(property); } else { var pvs = property; if(type != 'object') { pvs = {}; pvs[property] = value; } return this.set(pvs); } } }); /* css testing! */ //will return "200px" console.log('css(width) = ' + $('subject').css('width')); //will set width value to "500px" console.log('css(width,500) = ' + $('subject').css('width',500)); //will set width value to "700px" console.log('css(width,700) = ' + $('subject').css({width:700})); /* attr testing! */ //will return "moo" console.log('attr(rel) = ' + $('subject').attr('rel')); //will set width value to "500px" console.log('attr(rel,mootools) = ' + $('subject').attr('rel','mootools') + ' :: ' + $('subject').attr('rel')); //will set width value to "700px" console.log('attr(rel,mootools ftw!) = ' + $('subject').attr({rel:'mootools ftw'}) + ' :: ' + $('subject').attr('rel')
Osobně tuto syntaxi v MooTools nepreferuji, ale snad to někomu pomůže!