2014-12-04 2 views
0

Я пытаюсь передать данные атрибута div как идентификатор элемента. У меня есть группа divs в паре, первая - как своего рода заголовок, определяющий, что во втором, невидимом div. Я пытаюсь переключить второй div, видимый с помощью события mouseenter первого. Я пытаюсь сделать это с помощью одной функции для всей группы, а не для каждой пары.JQuery, передающий элемент id для события toggle

Мой код следующим образом:

$(document).ready(function() { 
 
    $('div.jobs').mouseenter(function() { 
 
     var id = (this).attr("data-item"); 
 
     $($("#"+ id).toggle()); 
 
    }); 
 
});

HTML следующим образом:

<div class="jobs" id="ident" data-item="data"> test div</div> 
<br /> 
<div class="jobs" id="data" style="display:none">Some Data</div> 
<br /> 
<div class="jobs" id="ident1" data-item="data1"> test div 2</div> 
<br /> 
<div class="jobs" id="data1" style="display:none">Some Other Data</div> 
<br /> 

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

+0

Я думаю, что ваши проблемы в '$ ($ ("#" + идентификатор) .toggle());' Я думаю, что это должно быть '$ ("#" + ID) .toggle() ' – Kolban

ответ

0

Посмотрите на эту скрипку:

http://jsfiddle.net/z26ogdzq/

Я сделал некоторые незначительные изменения в исходный в JS.

$(document).ready(function() { 
 
    $('div.jobs').mouseenter(function() { 
 
     var id = $(this).attr("data-item"); 
 
     $("#" + id).toggle(); 
 
    }); 
 
});

+0

Да, это работает. Спасибо всем. – axon

0

вы забыли положить $. попробуйте

var id = $(this).attr("data-item"); 
+0

Ах, синтаксис. – axon

Смежные вопросы