Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Помогите с Mootools

#1 Вячеслав

Вячеслав
  • Пользователь
  • 357 сообщений
  • Репутация: 0
0

Отправлено 18 Сентябрь 2009 - 15:50

Пивет, помогите разобратся, не пойму в чем дело почему не работаю словия IF ELSE???
По отдельности (каждый участок кода в if{} или else{}, сам код правильно работает) скрипт срабатывает, но если все как ниже, то срабатывает только первое (if{...}), else{...} при этом не выполняетс вообще!!! Не могу понять где я там неправ помогите, оч надо....

<script type="text/javascript">
window.addEvent('domready', function() {

  $$('div.buttonheading').setProperty('id', 'create');
  $$('p.buttonheading').setProperty('id', 'P_inject');
  
	var Array_a = $ES('a','P_inject');
	var Array_span = $ES('span','create');
	 
	 if(Array_a !=''){

			var Link = new Element('a', {
				'class' : 'My_link',
				'rel' : 'nofollow',
				'href' : '#',
				'events' : {
					'click': function(){
						window.open('http://<?php echo $self_host; ?>/index.php?option=com_pdf2email&view=pdf2email&id=<?php echo $self_id;?>&tmpl=component','win2','width=435,height=480,menubar=yes,resizable=yes'); return false;
					 }
				 }
			});

			Link.injectInside($('P_inject'));
			$$('a.My_link').setProperty('id', 'IMG_inject');
			 var IMG = new Element('img',{
				'alt' : 'pdf2email',
				'src' : 'images/M_images/emailButton.png'
			});
			IMG.injectInside($('IMG_inject'));

	 }
	 //_________________________________________________________________________//
	else //if (Array_span !='')
	{
		//We create a new element and the class is appropriated to it
		var Span = new Element('span', {
			   'class': 'mySpan'
		});
		//We insert a new element into the object
		//necessary to us, with appropriated to it early the identifier
		Span.injectInside($('create'));
		//We receive earlier created object on the class appropriated to it
		$$('.mySpan').setProperty('id', 'newSpan');
		//We create a new element and it is appropriated to it necessary properties and attributes
		var Link = new Element('a', {
	   'styles': {
			   'display': 'block',
			   'height':'14px',
			   'width':'14px',
			   'border':'0 none',
			   'float':'right',
			   'margin':'6px 5px 0 0',
			   'background':'url(images/M_images/emailButton.png)'
	   },

	   'class': 'myLink',
	   'href': '#',

	  'events': {
			   'click': function(){
				  window.open('http://<?php echo $self_host; ?>/index.php?option=com_pdf2email&view=pdf2email&id=<?php echo $self_id;?>&tmpl=component','win2','width=435,height=480,menubar=yes,resizable=yes'); return false;
				}
	   }
	  });
		//We insert it is new the created element in a pregoing element
		Link.injectInside($('newSpan'));
	}


 


});
</script>

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 18 Сентябрь 2009 - 20:10

Вячеслав,
if( Array_a != '' )
Замени на
if( Array_a.length > 0 )

А вообще ты как всегда извращаешься.
  • 0

#3 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 357 сообщений
  • Репутация: 0

Отправлено 19 Сентябрь 2009 - 01:09

То что извращаюсь согласен :) , но надож както учится, я просто еще незнаю всех "блатных" слов языка, и поэтому пытаюсь решить задачу "словами младенца" :) ...

Изменил код все заработало:
<script type="text/javascript">
function Create_Link(){
		var Link = new Element('a', {
				'class' : 'My_link',
				'rel' : 'nofollow',
				'href' : '#',
				'events' : {
					'click': function(){
						window.open('http://<?php echo $self_host; ?>/index.php?option=com_pdf2email&view=pdf2email&id=<?php echo $self_id;?>&tmpl=component','win2','width=435,height=480,menubar=yes,resizable=yes'); return false;
					 }
				 }
		 });
		 return (Link);
}
function Create_IMG(){
		var IMG = new Element('img',{
				'alt' : 'pdf2email',
				'src' : 'images/M_images/emailButton.png'
			});
			return (IMG);
}
window.addEvent('domready', function() {

  $$('div.buttonheading').setProperty('id', 'create');
  $$('p.buttonheading').setProperty('id', 'P_inject');

	var Array_span = $$('div.buttonheading');
	var Array_table = $$('table.contentpaneopen');

  if(Array_span.length > 0){
	   var Span = new Element('span', {
			   'class': 'mySpan'
		});
		//We insert a new element into the object
		//necessary to us, with appropriated to it early the identifier
		Span.injectInside($('create'));
		//We receive earlier created object on the class appropriated to it
		$$('.mySpan').setProperty('id', 'newSpan');
		//We create a new element and it is appropriated to it necessary properties and attributes
		var Link = new Element('a', {
	   'styles': {
			   'display': 'block',
			   'height':'14px',
			   'width':'14px',
			   'border':'0 none',
			   'float':'right',
			   'margin':'6px 5px 0 0',
			   'background':'url(images/M_images/emailButton.png)'
	   },

	   'class': 'myLink',
	   'href': '#',

	  'events': {
			   'click': function(){
				  window.open('http://<?php echo $self_host; ?>/index.php?option=com_pdf2email&view=pdf2email&id=<?php echo $self_id;?>&tmpl=component','win2','width=435,height=480,menubar=yes,resizable=yes'); return false;
				}
	   }
	  });
		
		Link.injectInside($('newSpan'));

}

//_______________________________________________________________________________
else{

	if(Array_table.length > 0){
		Array_table[0].setProperty('id', 'Tab_modify');
		//$$('table.contentpaneopen').setProperty('id', 'Tab_modify');
		$E('tbody', 'Tab_modify').setProperty('id', 'TB_modify');
		$E('tr', 'TB_modify').setProperty('id', 'TR_modify');
		var TD = new Element('td', {
					'class' : 'buttonheading',
					'align' : 'right',
					'width' : '100%'

		});
		TD.injectInside($('TR_modify'));
		var Array_Td = $ES('td', 'TR_modify');
		Array_Td[4].setProperty('id', 'Td_modify');
		var Link = Create_link();
		Link.injectInside('Td_modify');
		$$('a.My_link').setProperty('id', 'IMG_inject');
		var IMG = Create_IMG();
		IMG.injectInside($('IMG_inject'));

	}
	else{

			var Link = new Element('a', {
				'class' : 'My_link',
				'rel' : 'nofollow',
				'href' : '#',
				'events' : {
					'click': function(){
						window.open('http://<?php echo $self_host; ?>/index.php?option=com_pdf2email&view=pdf2email&id=<?php echo $self_id;?>&tmpl=component','win2','width=435,height=480,menubar=yes,resizable=yes'); return false;
					 }
				 }
			});

			Link.injectInside($('P_inject'));
			$$('a.My_link').setProperty('id', 'IMG_inject');
			 var IMG = new Element('img',{
				'alt' : 'pdf2email',
				'src' : 'images/M_images/emailButton.png'
			});
		   IMG.injectInside($('IMG_inject'));
   }
}

});
</script>

Код получился огромным и хочется его сократить, хотябы убрать дублирование обьявления одинаковых переменных (var Link; var IMG), я хочу это сделать таким путем:
1)Создаю две функции в теле которых создаются переменные, в одной Link в другой IMG, функции возвращают значения return(Link) и return(Img)

Вот эти функции:

function Create_Link(){
		var Link = new Element('a', {
				'class' : 'My_link',
				'rel' : 'nofollow',
				'href' : '#',
				'events' : {
					'click': function(){
						window.open('http://<?php echo $self_host; ?>/index.php?option=com_pdf2email&view=pdf2email&id=<?php echo $self_id;?>&tmpl=component','win2','width=435,height=480,menubar=yes,resizable=yes'); return false;
					 }
				 }
		 });
		 return (Link);
}
function Create_IMG(){
		var IMG = new Element('img',{
				'alt' : 'pdf2email',
				'src' : 'images/M_images/emailButton.png'
			});
			return (IMG);
}

2)А затем хочу, уже в теле следующей функции:
window.addEvent('domready', function() {...}
Вызывать эти функции в нужных участках.
Пишу вот так:
var Link = Create_Link();
Ничего не вызывается, подскажите как вызвать функцию, искал в сети так толком ничего и не нашел рабочего примера.
  • 0

#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 19 Сентябрь 2009 - 09:18

Вячеслав, кто сказал что ничего не вызывается. Мне кажется просто ничего не возвращается. Я отлаживая код использую alert(). Если переменная не определена он выведет undefined.
А так могу кзать, что скорее всего функция возвращает левую копию, с которой нельзя работать, а не сам объект.
  • 0


Оформление форума – IPBSkins.ru