X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите с Mootools, условные операторы if else
toorr2p
toorr2p
Topic Starter сообщение 18.9.2009, 16:50; Ответить: toorr2p
Сообщение #1


Пивет, помогите разобратся, не пойму в чем дело почему не работаю словия 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
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 18.9.2009, 21:10; Ответить: ZiTosS
Сообщение #2


Вячеслав,
if( Array_a != '' )

Замени на
if( Array_a.length > 0 )


А вообще ты как всегда извращаешься.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
toorr2p
toorr2p
Topic Starter сообщение 19.9.2009, 2:09; Ответить: toorr2p
Сообщение #3


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

Изменил код все заработало:
<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();

Ничего не вызывается, подскажите как вызвать функцию, искал в сети так толком ничего и не нашел рабочего примера.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 19.9.2009, 10:18; Ответить: ZiTosS
Сообщение #4


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

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 732 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1702 11.12.2020, 0:48
автор: Levels
Открытая тема (нет новых ответов) Помогите кто нибудь получить партнерку Росбанк!
7 heisenberg_mw 2347 7.8.2020, 9:28
автор: heisenberg_mw
Открытая тема (нет новых ответов) Помогите найти тему пожалуйста
7 virtas 12573 24.7.2020, 17:02
автор: -JamesSmips-
Открытая тема (нет новых ответов) Помогите с поиском доноров
3 tehno_music 3362 4.11.2019, 17:15
автор: goblin78


 



RSS Текстовая версия Сейчас: 25.4.2024, 23:07
Дизайн