JQuery передает идентификатор элемента для события переключения

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

Мой код следует:

$(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, когда я запускаю событие ввода мыши, но он не переключается. Я должен что-то упустить.


person axon    schedule 04.12.2014    source источник
comment
Я думаю, что ваши проблемы в $($("#"+id).toggle()); Я думаю, что это должно быть $("#"+id).toggle()   -  person Kolban    schedule 04.12.2014


Ответы (2)


Взгляните на эту скрипку:

http://jsfiddle.net/z26ogdzq/

Я сделал несколько небольших изменений в вашем оригинальном файле JS.

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

person Hendrik Bunnick    schedule 04.12.2014

вы забыли поставить $. пытаться

var id = $(this).attr("data-item");
person user3308224    schedule 04.12.2014