Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Присваивание style с помощю javascript (https://javascript.ru/forum/misc/7956-prisvaivanie-style-s-pomoshhyu-javascript.html)

Peresmeshnik 28.02.2010 19:03

Присваивание style с помощю javascript
 
Привествтую! Я уже совсем измучился поисками ответа и не могу никак понять как мне для данного кода выставить значение отступа (margin-right например) для изображения, которое вставляется на страницу и как мне создать условие, что если выравнивание left, то margin-right = "10px", а если right, то margin-left = "10px"?
/* START CONFIG */
var nicImageOptions = {
	buttons : {
		'image' : {name : 'Добавить изображение', type : 'nicImageButton', tags : ['IMG']}
	}
	
};
/* END CONFIG */

var nicImageButton = nicEditorAdvancedButton.extend({	
	addPane : function() {
		this.im = this.ne.selectedInstance.selElm().parentTag('IMG');
		this.addForm({
			'' : {type : 'title', txt : 'Добавить/Ред. изображение:'},
			'src' : {type : 'text', txt : 'URL (http://…)', 'value' : '', style : {width: '150px'}},
			'alt' : {type : 'text', txt : 'Комментарий (alt)', style : {width: '150px'}},
			'align' : {type : 'select', txt : 'Выравнивание', options : {none : 'По умолчанию','left' : 'Лево', 'right' : 'Право'}}
		},this.im);
	},
	
	submit : function(e) {
		var src = this.inputs['src'].value;
		if(src == "" || src == "http://") {
			alert("Вы должны вставить URL изображения для вставки");
			return false;
		}
		this.removePane();

		if(!this.im) {
			var tmp = 'javascript:nicImTemp();';
			this.ne.nicCommand("insertImage",tmp);
			this.im = this.findElm('IMG','src','style',tmp);
		}
		if(this.im) {
			this.im.setAttributes({
				src : this.inputs['src'].value,
				alt : this.inputs['alt'].value,
				align : this.inputs['align'].value
			});
		}
	}
});

Подскажите пожалуйста!

Octane 28.02.2010 19:29

Хоть бы показали, что это за редактор такой nic, и что вы там пытались сделать, но не получилось. Выдранный кусок кода команды ничего не показывает.

Peresmeshnik 28.02.2010 19:32

Вот ссылка на этот редактор, я использую его для друпала, но вот пытаюсь его "допилить" до приемлемого состояния.

А пытался я в этот код вставить строчку что-то типа:
setStyle({margin-right : '10px'})

вот так:

if(this.im) {
	this.im.setAttributes({
		src : this.inputs['src'].value,
		alt : this.inputs['alt'].value,
		align : this.inputs['align'].value,
		setStyle({margin-right : '10px'})
	});
}

Octane 28.02.2010 20:09

submit : function(e) {
		var src = this.inputs['src'].value;
		if(src == "" || src == "http://") {
			alert("You must enter a Image URL to insert");
			return false;
		}
		this.removePane();

		if(!this.im) {
			var tmp = 'javascript:nicImTemp();';
			this.ne.nicCommand("insertImage",tmp);
			this.im = this.findElm('IMG','src',tmp);
		}
		if(this.im) {
			this.im.setAttributes({
				src : this.inputs['src'].value,
				alt : this.inputs['alt'].value,
				align : this.inputs['align'].value
			});
*!*
			if ((/left|right/).test(this.inputs['align'].value)) {
				var style = {};
				style["margin" + (this.inputs['align'].value == "left" ? "Right" : "Left")] = "10px";
				this.im.setStyle(style);
			}
*/!*
		}
	}

Peresmeshnik 28.02.2010 21:49

Спасибо огромное!!!
Надеюсь что это еще кому-то пригодиться!

Обнаружил еще кое-какую проблему с этим скриптом: если сперва выбрать выравнивание по левому краю, а потом по правому, то style картинки получит по наследству оба параметра отступа. Т.е. как можно сделать обнуление, чтобы при выравнивании по правому краю после левого не оставались параметры отступа от левого?


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