从data属性获取id时,JQuery slideUp不起作用

时间:2014-08-01 10:05:21

标签: jquery

我正在尝试使用JQuery,并且在单击另一个元素时尝试将一个元素添加到slideDown / slideUp,从所单击元素的数据属性中获取目标元素的id。

http://jsfiddle.net/muqz7/1/

检查器中的DOM似乎有活动,但在视觉上没有任何变化。我的代码:

HTML:

<button data-target="#box">Click me!</button>
<div id="box"></div>

CSS:

.box {
    width: 100px;
    height: 100px;
    background: red;
    display: none;
}

JQuery:

$('button').click(function() {
    box = $($(this).data('target'));
    if (box.hasClass('open')) {
        box.removeClass('open');
        box.slideUp(400);
    } else {
        box.addClass('open');
        box.slideDown(400);
    }
});

3 个答案:

答案 0 :(得分:1)

在你的CSS中,你需要编写#box而不是.box,因为你使用的是id,而不是类。

答案 1 :(得分:1)

它在我这里工作:

jsfiddle

我将html更改为

<button data-target="#box">Click me!</button>
<div id="box">
    test<br>
    test<br>
    test<br>
    test<br>
    test<br>
    test<br>
</div>

答案 2 :(得分:1)

将您的css .box更新为#box

查看演示http://jsfiddle.net/yeyene/muqz7/2/

$('button').click(function() {
    box = $($(this).data('target'));
    if (box.hasClass('open')) {
        box.removeClass('open');
        box.slideUp(400);
    } else {
        box.addClass('open');
        box.slideDown(400);
    }
});