Заменить id на class в функции (jquery)

sarkis

Профессор
Регистрация
27 Фев 2014
Сообщения
248
Реакции
40
Всем привет ..Вот кусок функции жКвери
Код:
    function()
    {
        $('.windowOpen').bind(
            'click',
            function() {
                if($('#window').css('display') == 'none') {
                    $(this).TransferTo(
                        {
                            to:'window',
                            className:'transferer2',
                            duration: 400,
                            complete: function()
                            {
                                $('#window').show();
                            }
                        }
                    );
                }
                this.blur();
                return false;
            }
        );

вот html
Код:
<a href="" class="windowOpen">Открыть всплывающее окно 1</a>
<div id="window">
    <div id="windowTop">
        <div id="windowTopContent">Пример окна</div>
        <img src="images/window_min.jpg" id="windowMin" />
        <img src="images/window_max.jpg" id="windowMax" />
        <img src="images/window_close.jpg" id="windowClose" />
    </div>
    <div id="windowBottom"><div id="windowBottomContent">&nbsp;</div></div>
    <div id="windowContent">
test
    </div>
    <img src="images/window_resize.gif" id="windowResize" />
</div>


к примеру . у меня на странице несколько генерируется таких html и у каждого свой текст...Вопрос :
Как в функции жквери изменить id на class ?
интересует вот этот кусок кода (в нем прописан id=window)
Код:
                            to:'window',
                            className:'transferer2',
                            duration: 400,
 
Код:
if($('#window').css('display') == 'none') {
    $(this).TransferTo(
        {
            to:'window',
            className:'transferer2',
            duration: 400,
            complete: function()
            {
                $('#window').show();
            }
        }
    ).removeClass('className').attr('id','idName');
}
 
Код:
if($('#window').css('display') == 'none') {
    $(this).TransferTo(
        {
            to:'window',
            className:'transferer2',
            duration: 400,
            complete: function()
            {
                $('#window').show();
            }
        }
    ).removeClass('className').attr('id','idName');
}


немного не понял для чего нужно удаление класса ...
Смотрите ,
мне нужно ,чтобы эта функция
Код:
$(this).TransferTo(
        {
            to:'window',
            className:'transferer2',
            duration: 400,
            
          
            }
реагировала на класс "window" , но сейчас она реагирует на id "window"
 
Код:
<a href="" class="windowOpen1">Открыть всплывающее окно 1</a>
<div id="window1">
    <div id="windowTop">
        <div id="windowTopContent">Пример окна</div>
        <img src="images/window_min.jpg" id="windowMin" />
        <img src="images/window_max.jpg" id="windowMax" />
        <img src="images/window_close.jpg" id="windowClose" />
    </div>
    <div id="windowBottom"><div id="windowBottomContent">&nbsp;</div></div>
    <div id="windowContent">
test
    </div>
    <img src="images/window_resize.gif" id="windowResize" />
</div>
Код:
        $('.windowOpen1').bind(
            'click',
            function() {
                if($('#window1').css('display') == 'none') {
                    $(this).TransferTo(
                        {
                            to:'window1',
                            className:'transferer2',
                            duration: 400,
                            complete: function()
                            {
                                $('#window').show();
                            }
                        }
                    );
                }
                this.blur();
                return false;
            }
        );
 
Последнее редактирование:
спасибо ..Частично разобрался ...теперь вылезла другая проблема ...К примеру
Код:
$i=1;
while( тут условие вывода 2х ссылок из базы){
<a href='' class='link$i'></a>
<script> var id_advert=<?echo $i; ?>;</script>
<script type="text/javascript" src="/script.js"></script>//обработчик
$i++;
}

В script.js обрабатывается
Код:
$(document).ready(
    function()
    {
        $('.link'+id_advert).bind(
            'click',
            function() {
                    $('.window').show();
                this.blur();
                return false;
            }
        );
    
     
     
    }
);

в итоге , на один элемент клацаю - выскавивает сразу 2 окна , а на второй кликаю - вообще ничего не происходит ..Не могу понять ,в чем проблема...
В фаербаге видно , что каждый класс со своей цифрой
 
Дайте ссылку на Ваш проект в нете, так ни чего определенного Вам сказать не могу, нужно самому видеть код
 
блин , вот это сложно , т.к работаю на локальном хосте ..
я попробую еще проще рассказать. т.к код я уже сам упростил до смехоты , а понять не могу ....


Есть две ссылки из цикла (на самом деле намного больше), каждой из этих ссылок соответствует определенный текст , который должен появляться ......Пример :

(тут я уже показываю готовый выходной файл .На самом деле тут должен быть цикл )
Код:
<a href='' class='link1'>ссылка1</a>
<a href='' class='link2'>ссылка2</a>

<div class='text1' style='display:none;'>Текст1</div>
<div class='text2' style='display:none;'>Текст2</div>

А вот код жквери
Код:
$(document).ready(
    function()
    {
        $('.link'+id_advert).bind(
            'click',
            function() {
              
                   
                 $('.text'+id_advert).show();
            
            }
        );
     
    }
);


id_advert - это номер ,который добавляется в класс ссылки или блока с текстом
 
Код:
$(document).ready(
    function()
    {
        $('.link1').bind(
            'click',
            function() {
             
                  
                 $('.text1').show();
           
            }
        );
        $('.link2').bind(
            'click',
            function() {
             
                  
                 $('.text2').show();
           
            }
        );   
    }
);
добавьте этот Ваш js код в цикл что б он генерировал вот такой js код
 
я так и делаю ..Вот код из моего цикла :


Код:
 <a href=''  class='windowOpen'.$row["id_advert"].' ' >$row["name_adv"]</a>
   <script> var id_advert=$row["id_advert"];</script>
   <script type="text/javascript" src="/templates/coolmini/moduls/doska/mtemplates/page/modal/script.js"></script>





он выводит две ссылки , но в итоге, работает только последняя ссылка , которая срабатывает дважды
 
все ..Спасибо ..Записал код непосредственно в html в цикл .....
 
Назад
Сверху