0

我正在尝试在引导手风琴旁边的 div 中隐藏和显示图像。我使用的 javascript 有效,只有一个问题。

我想在手风琴关闭时隐藏带有图像的 div,如果我单击相同的手风琴标题,这将有效。不幸的是,如果手风琴打开并且我单击另一个标题,则带有图像的 div 会隐藏。

我知道为此使用 Jquery 可能会更好,或者我需要在 javascript 中为它使用参数或条件,但我是一个剪切和粘贴的人,我找不到任何可以使用或轻松修改的东西. 这是脚本:

function slideContent(id) {
if ($('#' + id).css('display') == 'none') {
    $('#' + id).slideDown('100', function () { });
}
else {
    $('#' + id).slideUp('100', function () { });
}
}
</script>

这是小提琴http://jsfiddle.net/C7caU/21/。只有 javascript 在小提琴中不起作用,没有在点击时显示带有图像的 div。为什么我不知道,它确实在浏览器中工作。感谢 Shukla Jay,这个小提琴现在可以正常工作了

任何帮助将不胜感激,谢谢。

4

2 回答 2

0

如果您不指定换行设置,则默认为“onLoad”。这导致所有 JavaScript 都被包装在一个函数中,在结果加载后运行。所有变量都是此函数的本地变量,因此在全局范围内不可用。

将包装设置更改为“无包装”,它将起作用:

你的引导版本文件有问题。我只是把它改成了这个。

<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js">  </script>
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">

Updated Fiddle 看这里

于 2013-08-24T11:10:45.250 回答
0
<script type="text/javascript">
var tag = '';
function slideContent(id) {
if(id == tag){
    if (($('#pics').css('display') == 'none') && (id == tag)) {
        $('#pics').slideDown('100');
        tag = id;
    }else {
        $('#pics').slideUp('100');
        tag = '';
    }
   }else{
    $('#pics').slideDown('100');
    tag = id;
}
}

</script>  

只需将# pics 替换为您自己的。

于 2013-09-13T15:07:18.240 回答