Я живу и дышу jQuery, но мне также нравится находить отличный плагин, который идеально подходит для работы.Как зло jQuery * внутри * код MooTools?
Мои Rails приложение кодируется в JQuery, но для загрузки файлов, я еще не нашел ничего лучшего, чем FancyUpload (лучше ИМХО, чем Uploadify или SWFUpload). Попробовав все три библиотеки, FancyUpload, безусловно, лучше всего интегрируется в мое приложение.
Однако FancyUpload основан на MooTools, и загрузка обеих библиотек (не говоря уже о работе с ними) начинает немного болеть. Во-первых, я загружаю MooTools только на страницы, которые используют функции загрузки; все остальные страницы используют исключительно jQuery. Во-вторых, мне пришлось manually namespace many of my jQuery functions, что немного раздражает.
Но, возможно, самой громоздкой особенностью этой установки является то, что я не знаю MooTools. Поскольку я смог сделать почти все остальное с помощью jQuery, я никогда не удосужился учиться. Теперь, когда я заставляю себя использовать эту библиотеку FancyUpload (которую я люблю и хочу продолжать использовать), я столкнулся с моей неуместностью в MooTools.
В частности, вот моя onFileSuccess
функция FancyUpload:
onFileSuccess: function(file, response) {
var json = new Hash(JSON.decode(response, true) || {});
if (json.get('status') == '1') {
// success
file.element.addClass('file-success');
(function ($, elem, queue_item) {
$('#images').append($(elem).hide().fadeIn('slow'));
$(queue_item).fadeOut('slow', function() { $(this).remove(); });
})(jQuery, json.get('data'), file.element);
} else {
// failure
file.element.addClass('file-failed');
}
}
Как вы можете заметить, у меня есть функция JQuery прямо в середине функции MooTools.
Мой вопрос в том, что это действительно плохо? Моя функция работает так же, как я хочу, но я не знаю, могу ли я заснуть в сторону какой-то будущей катастрофы, сделав это.
Если это действительно плохая идея, может кто-нибудь дать мне указатель на то, что будет эквивалентным кодом MooTools?
Буду признателен за любую информацию или помощь.
Я думаю, что это не должно быть проблемой.Я бы сделал кросс-браузерный тест и проявляю осторожность при обновлении до более новых версий фреймворков. – Marko
эквивалент mootools будет выглядеть как '$ (" images "). Accept ($ (json.get (" data ")). Fade (0,1, {duration: 1000})); $ (file.element) .set ("твин", { OnComplete: функция() { this.element.dispose();} }) исчезают ("из"); ' - хотя это трудно. чтобы указать, какая переменная является указателем на элемент, а какой нет - mootools не нуждается в объектах для прохождения через $. –