0

我正在编写一个小脚本来在单击其他 div 时显示/隐藏一个 div,但我无法让第二个 div 可点击。

到目前为止,这是我的代码:

$(document).ready(function(){
    $('div#ordontia').click(function(){
        $(this).next('div#ordontia2').slideToggle("slow");
    });
});

http://jsfiddle.net/65AK2/1/

每次单击“按钮”时,都会在表格底部显示一个带有描述的新 div。(底部的蓝色 div)。如果单击另一个按钮,则前面的描述应该关闭,另一个描述应该在同一个地方打开。(尚未实施)

提前感谢您的帮助!

4

6 回答 6

2

不要使用$.next,它只选择当前元素的兄弟姐妹:

获取匹配元素集中每个元素的紧随其后的兄弟。如果提供了选择器,则仅当它与该选择器匹配时,它才会检索下一个兄弟。
jQuery 文档:.next()

使用普通的:

$('div#ordontia2').slideToggle("slow");
于 2013-10-28T17:41:06.520 回答
2

如果元素具有唯一 ID,为什么要使用 next 选择元素?

$(document).ready(function(){
    $('div#ordontia').click(function(){
        $('div#ordontia2').slideToggle("slow");
    });
});

如果添加更多 div,则更通用:

$(document).ready(function(){
    $('.botaomedicina').click(function(){
        $('#'+$(this).attr('id')+'2').slideToggle("slow");
    });
});

所有其他人都关闭:

$(document).ready(function(){
    $('.botaomedicina').click(function(){
        $('.botaomedicinadescription').slideUp("slow");
        $('#'+$(this).attr('id')+'2').slideToggle("slow");
    });
});
于 2013-10-28T17:41:27.367 回答
2

解决它。

http://jsfiddle.net/65AK2/2/

首先,看起来您切换的 div 格式错误。我没看到为了它。

其次,如果你知道另一个div的ID是什么,你就不需要说:

$(this).next("#item");

,这没有任何意义。

于 2013-10-28T17:42:52.333 回答
1
$(document).ready(function(){
    $('div#ordontia').click(function(){
        $('div#ordontia2').slideToggle("slow");
    });
});

删除this;)

于 2013-10-28T17:41:20.810 回答
1

尝试这个

$(document).ready(function(){
    $('div#ordontia').click(function(){
        $('div#ordontia2').slideToggle("slow");
    });
});

更新小提琴http://jsfiddle.net/65AK2/4/

于 2013-10-28T17:43:23.667 回答
0

您可以通过ID 选择器直接执行此操作

http://jsfiddle.net/65AK2/3/

$(document).ready(function(){
    $('#ordontia').click(function(){
        $('#ordontia2').slideToggle("slow");
    });
});
于 2013-10-28T17:43:44.653 回答