Показать сообщение отдельно
  #1 (permalink)  
Старый 11.02.2012, 11:32
Интересующийся
Отправить личное сообщение для alexben Посмотреть профиль Найти все сообщения от alexben
 
Регистрация: 11.02.2012
Сообщений: 26

написал коряво плагин на JS - он работает, а как сделать лучше? Теги: Массив, replace
emoTicon: {
				name: 'smile',
				dialog: {
					content: function() {
						//var smiley_url = '/assets/plugins/bb-smilies/';
						var addSmile =[	
											[':D','laugh.gif'], 		[':lol:','lol.gif'],
											[':-)','smile.gif'],		[';-)','wink.gif'],
											['8)','cool.gif'],			[':-|','normal.gif'],
											[':-*','whistling.gif'],	[':oops:','redface.gif'],
											['8)','cool.gif'],			[':sad:','sad.gif'],
											[':-*','whistling.gif'],	[':cry:','cry.gif'],
											[':o','surprised.gif'],		[':-?','confused.gif'],
											[':-x','sick.gif'],			[':eek:','shocked.gif'],
											[':-x','sick.gif'],			[':eek:','shocked.gif']
									  ],

					
							ul 	 = '<ul class="smarkup-special-chars">{rows}</ul>',
							li  	 = '<li>{cols}</li>',
							img		 = '<img alt="{alt}"',
							img2		 = ' src="smiles/{src}"/>',
							rowCount = addSmile.length / 6,
							rows 	 = [];
			
						for (var i = 0; i < rowCount; i++) {
							var cols = [];
							for (var j = i * 6; j < (i * 6 + 6); j++) {
								cols.push(img.replace('{alt}', addSmile[j][0]));
								cols.push(img2.replace('{src}', addSmile[j][1]));
							}
							rows.push(li.replace('{cols}', cols.join('')));
						}
						
						return ul.replace('{rows}', rows.join(''));
						
					},
					events: {
						onclick: function(e) {
							this.paste((e.target || e.srcElement).alt);
							this.hideDialog();
							return false;
						}
					}
				}
			},


Вообщем плагин работает, но крайне не нравится как написал поиск- замена из массива.
Хотелось бы сразу указать в одной переменной и {src} и {alt}.

img = '<img alt="{alt}"',
img2 = ' src="smiles/{src}"/>',

..
cols.push(img.replace('{alt}', addSmile[j][0]));
cols.push(img2.replace('{src}', addSmile[j][1]));


Я выделил участки кода которые корявые, посоветуйте пожалуйста как можно, это сделать более красиво\логично.
Ответить с цитированием