Javascript.RU

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

Получение id элемента, родитель которого динамически меняет класс
Всем доброго! Подскажите, плиз:
Есть таблица:
<table class="interface">
   <tr class="any over">
       <td><a class="element" id="123">ссылка 1</a></td>
   </tr>
   <tr class="any">
       <td><a class="element" id="234">ссылка 2</a></td>
   </tr>
   <tr class="any">
       <td><a class="element" id="345">ссылка 3</a></td>
   </tr>


Я хочу вывести при наведении на ссылку подсказку с помощью qTip. Для этого:
$(document).ready(function(){
    $('.element').qtip({
           content: {
                text: 'Подождите...',
                ajax: {
                    url: 'ajax.php?ELEMENT_ID='+$('.interface').find('.over').children('.element').attr('id')
                }
            }
    });
});

Класс over устанавливается динамически при наведении мышкой на строку. Хочется, чтобы при наведении мышкой на ссылку скрипт вытаскивал id этой ссылки из подсвеченной строки. Но в таком виде скрипт не работает, не находит over...
Пробовал так
$(document).ready(function(){
    $('.element').qtip({
           content: {
                text: 'Подождите...',
                ajax: {
                    url: 'ajax.php?ELEMENT_ID='+$(this).attr('id')
                }
            }
    });
});

Но в this, естественно, хранится window, а не ссылка на нужный объект
Ответить с цитированием
  #2 (permalink)  
Старый 11.08.2011, 17:36
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

$('.interface .over .element').attr('id');
Ответить с цитированием
  #3 (permalink)  
Старый 11.08.2011, 17:39
Новичок на форуме
Отправить личное сообщение для Serzhik Посмотреть профиль Найти все сообщения от Serzhik
 
Регистрация: 11.08.2011
Сообщений: 6

Пробовал, не видит over. Соответственно, возвращает undefined
Ответить с цитированием
  #4 (permalink)  
Старый 11.08.2011, 17:41
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

должен видеть попробуй вывести алертом:
alert($('.interface .over .element')[0].innerHTML); // должен вывести имя ссылки, в противном случае что-то у тебя не так.
Ответить с цитированием
  #5 (permalink)  
Старый 11.08.2011, 17:44
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<table class="interface"> 
   <tr class="any over"> 
       <td><a class="element" id="123">ссылка 1</a></td> 
   </tr> 
   <tr class="any"> 
       <td><a class="element" id="234">ссылка 2</a></td> 
   </tr>
</table>
<script type="text/javascript">
    alert($('.interface .over .element')[0].innerHTML);
</script>

Последний раз редактировалось devote, 11.08.2011 в 17:48.
Ответить с цитированием
  #6 (permalink)  
Старый 11.08.2011, 17:49
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

запусти то что я прислал, увидешь что покажет в алерте "ссылка 1"
Ответить с цитированием
  #7 (permalink)  
Старый 11.08.2011, 17:56
Новичок на форуме
Отправить личное сообщение для Serzhik Посмотреть профиль Найти все сообщения от Serzhik
 
Регистрация: 11.08.2011
Сообщений: 6

У меня чуть другая ситуация: на момент формирования страницы нет элемента с over.

<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<table class="interface"> 
   <tr class="any"> 
       <td><a class="element" id="123">ссылка 1</a></td> 
   </tr> 
   <tr class="any"> 
       <td><a class="element" id="234">ссылка 2</a></td> 
   </tr>
</table>
<script>
$(document).ready(function(){
    $('.any').hover(
        function() {
            $(this).addClass('over');
        },
        function() {
            $(this).removeClass('over');
        }
    );
    $('.element').qtip({
           content: {
                text: 'Подождите...',
                ajax: {
                    url: 'ajax.php?ELEMENT_ID='+$('.interface .over .element').attr('id');
                }
            }
    });

});
</script>

А твой код работает - не спорю, посмотрел

Последний раз редактировалось Serzhik, 11.08.2011 в 17:59.
Ответить с цитированием
  #8 (permalink)  
Старый 11.08.2011, 17:58
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Ну значит класс к элементу не применяется, и ты пытаешься загрузить до того как класс был назначен.
Ответить с цитированием
  #9 (permalink)  
Старый 11.08.2011, 18:04
Новичок на форуме
Отправить личное сообщение для Serzhik Посмотреть профиль Найти все сообщения от Serzhik
 
Регистрация: 11.08.2011
Сообщений: 6

Вот я примерно это и имел в виду: скрипт не видит over из-за того, что класс назначается динамически.
А второй вопрос: можно ли как-то сослаться на объект, к которому привязывается qTip?
Что-то типа:
$(document).ready(function(){
    $('.element').qtip({
           content: {
                text: 'Подождите...',
                ajax: {
                    url: 'ajax.php?ELEMENT_ID='+$(this).attr('id')
                }
            }
    });
});
Ответить с цитированием
  #10 (permalink)  
Старый 11.08.2011, 18:13
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Это надо документацию читать по этому плагину
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение значения соседнего элемента Max Tretyakov Events/DOM/Window 2 27.06.2011 22:01
Получение стиля элемента. BreatheInTheVoid Элементы интерфейса 4 01.05.2010 17:25
Динамическое создание елемента из динамически созданного элемента. Anguis Элементы интерфейса 10 16.12.2009 17:26