Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.01.2014, 13:52
Аспирант
Отправить личное сообщение для Danxil Посмотреть профиль Найти все сообщения от Danxil
 
Регистрация: 08.11.2013
Сообщений: 37

js-фреймворк, связывающий css классы и dom элементы
В общем дали такое тестовое задание - "Простой js-фреймворк, связывающий css классы и dom элементы
(приминение css стилей к dom элементам). Итоговая функциональность и
интерфейсы на усмотрение".

Не могу понять чего они хотят - CSS-классы с dom-элементами связываются с помощью атрибутув, которые прекрасно устанавливаются стандартными методами JS, без фреймворков. То же самое и с применением стилей к dom-элементам. У кого какие мысли ?
Ответить с цитированием
  #2 (permalink)  
Старый 09.01.2014, 14:07
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

мне кажется, что тебя просят написать несколько абстракций для работы с css классами и dom элементами

но... блина, это же 3 функции, ёмаё

но так как сказано фреймворк, то эти 3 функции должны навязать свой стиль - например, как chain calls у jQuery или ООП у Mootools
Ответить с цитированием
  #3 (permalink)  
Старый 09.01.2014, 19:47
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

я не буду говорить про ui и angular
Ответить с цитированием
  #4 (permalink)  
Старый 09.01.2014, 19:51
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

Danxil, короче дам наводку, сделай что-то типа

<div controller='Ctrl' class='open_{isOpen}'></div>


<script>
function Ctrl() {
    this.isOpen = false
}
</script>


сделай короче что-то типа того, что мыл короче в атрибуте controller ты пишешь имя функции контроллера, а в атрибуте class ты можешь в {таких} тегах писать разные javascript выражения , которые выполняются with(инстанс_контроллера), и они туда будут подставляться, а при изменении перерисовываться.

В данном случае у тебя class должен будет стать "open_false" так как значение false при привращении в строку превратится в строку "false" и подставится на место {тега}. Например напишешь
class='my_class_{2+4}' у тебя в класс положется class='my_class_6'

Пнятна задумка?
Ответить с цитированием
  #5 (permalink)  
Старый 09.01.2014, 20:02
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Maxmaxmaximus7
короче дам наводку
на пиво тоже дай
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #6 (permalink)  
Старый 09.01.2014, 20:11
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

Ну еще можешь вот так вот сделать, скорее всего он это и имел ввиду


function JQ( selector ) {

    if (typeof selector === 'function') {
        addEventListener( 'DOMContentLoaded', selector );
        return;
    }


    if (!(this instanceof JQ)) {
        return new JQ( selector )
    }

    this.length = 0;

    try {

        var elements = document.querySelectorAll( selector );
        var elementsArr = elements ? Array.prototype.slice.call( elements ) : [];

        Array.prototype.push.apply( this, elementsArr );

    } catch (e) {

    }

}


JQ.prototype.each = function( handler ) {

    for (var i = 0; i < this.length; i++) {
        var element = this[i];
        var returns = handler.call( element, i );

        if (returns === false) {
            break;
        }
    }

    return this;
};



JQ.prototype.css = function( props ) {

    if (arguments.length === 2) {
        var prop = props;
        var value = arguments[1];
        props = {};
        props[prop] = value;
    }

    return this.each( function() {

        var style = this.style;
        for (var prop in props) if (props.hasOwnProperty( prop )) {
            var value = props[prop];
            style[prop] = value;
        }

    } );
};




// onload
JQ( function() {

    JQ( 'div' ).css( 'backgroundColor', 'red' );

} );


на короче, кусок jquery типа, скажешь сам сделал
Ответить с цитированием
  #7 (permalink)  
Старый 09.01.2014, 20:30
Аспирант
Отправить личное сообщение для Danxil Посмотреть профиль Найти все сообщения от Danxil
 
Регистрация: 08.11.2013
Сообщений: 37

Maxmaxmaximus7 Понятно что ты имеешь введу, но как по мне, это скорее связь css-классов с js-переменными, а не "связь css классов и dom элементов".

На просьбу уточнить функционал ответили так "Вы знакомы с jQuery, нужен небольшой фреймворк такого плана".

Хз, может типа такого им отослать ...

function addClass(element, className)
	{
		if (!element || !className)
			return;
		
		var index, elementClassNames = [];

		if (element.className)
			elementClassNames = element.className.split(' ');

		if ((index = getElementIndex(elementClassNames, className)) == -1)
		{
			elementClassNames.push(className);
			element.className = elementClassNames.join(' ');
		}
	}
Ответить с цитированием
  #8 (permalink)  
Старый 09.01.2014, 20:36
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Тебе максимуc показал фреймворк плана jQuery.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 09.01.2014 в 20:49.
Ответить с цитированием
  #9 (permalink)  
Старый 09.01.2014, 20:55
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

а где лайки мои?
Ответить с цитированием
  #10 (permalink)  
Старый 09.01.2014, 21:15
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Сообщение от Maxmaxmaximus7 Посмотреть сообщение
а где лайки мои?
лови
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление CSS свойста с помощью JS Hurley Internet Explorer 2 01.10.2009 21:55
CSS Class & JS keysi_ Общие вопросы Javascript 10 29.04.2009 18:37
Почему не работает JS с подгруженными в DOM элементами? V-z-z-HobboT jQuery 6 30.03.2009 14:02
Как создать ассоциативный массив JS + CSS occlusion Общие вопросы Javascript 3 12.01.2009 09:19
Ajax. Полноценная подгрузка страниц, содержащих CSS и JS. Alex22 AJAX и COMET 6 05.11.2008 23:53