Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   css() наподобие Jquery (https://javascript.ru/forum/misc/24817-css-napodobie-jquery.html)

9xakep 14.01.2012 22:32

css() наподобие Jquery
 
"Наподобие" - это конечно громко сказано, но...Короче, вот весь код:
<html><head></head><body></body></html>
<script>
function $()  {
return  {
	id: function (id) {
	this.elem = document.getElementById(id);
	this.id = id;
	return this;
	},
	add: function (add) {
	this.elem.innerHTML += add
	return this;
	},
	html: function () {
	return this.elem.innerHTML
	},
	tag: function (tag, index) {
	this.elem = document.getElementsByTagName(tag)[index]
	return this;
	},
	write: function (write) {
	this.elem.innerHTML = write
	return this;
	},
	src: function () {
	return this.elem.src
	},
	create: function (created_elem) {
	this.elem = document.createElement(created_elem)
	document.body.appendChild(this.elem)
	return this;
	},
	css: function (css_func) {
	css_func = function () {
	with(this.elem.style) {
			}
	/* тут я не знаю что писать */
		}
	}
			};
		}
$().create('div').write('asd').css(function () { /* тут я не знаю что писать */ })
</script>

Что написать там где комментарии? Есть единственная мысль передать это: css(function () { /* код */}) в ф-ию css: function....а там уже использовать eval, чтобы все это преобразовать в js. Пример:
.css(function () {
display = none \n
background = red
}) Содержимое ф-ии передается в eval, который преобразует это все в рабочий код. Но вот как передать? :blink:

9xakep 15.01.2012 22:35

Никаких идей?

FINoM 16.01.2012 08:22

Цитата:

Сообщение от 9xakep
Никаких идей?

with использовать не рекомендуется из-за соображений производительности. Да и я не совсем понял, что, собственно, нужно получить в итоге. Если такую же функцию как в jQuery, то ваш подход кардинально отличается от неё.

Kolyaj 16.01.2012 16:18

css({
    'padding-left': '5px',
    'border-radius': '5px'
})

9xakep 16.01.2012 16:27

FINoM, Kolyaj,
Да я уж понял, что там кардинально отличается...Насчет with учту...только мне это не особо важно
в итоге вот что:
$().create('div').write('sdf').css(function () { display = none })

Ну это как в пример: создаем див, пишем в нем sdf , и делаем его скрытым.


Часовой пояс GMT +3, время: 10:52.