Heya,我有一些我认为应该工作的代码(虽然我真的在黑暗中摸索) - 我只是想在div标签上动态更改类名。
我正在尝试将id“slider”上的div类从“visible”更改为“hidden”。关于这段代码的其他所有工作都很好,但是类不会改变。我做错了什么?
我已经尝试检查浏览器是否正确评估IE 6 - 确实如此。 if语句的第一部分中的代码,当它不是IE6时,初始化滑块。如果我用其他东西替换document.getElementById,那么代码也可以。所以我调用getElementbyId的方式一定是个问题吗?它只是在IE6中无所作为。
这就是我所拥有的:
<script type="text/javascript">
$(window).load(function() {
var isIE6 = false;
if(/MSIE 6/i.test(navigator.userAgent)) {
isIE6 = true;
}
if(!isIE6)
{
$('#slider').nivoSlider({
effect:'fade',
slices:1,
animSpeed:500,
pauseTime:3000,
startSlide:0,
directionNav:false,
directionNavHide:true,
controlNav:true,
controlNavThumbs:false,
controlNavThumbsFromRel:false,
controlNavThumbsSearch: '.jpg',
controlNavThumbsReplace: '_thumb.jpg',
keyboardNav:true,
pauseOnHover:true,
manualAdvance:false,
captionOpacity:0.8
});
}
else
{
document.getElementById('slider').className = "hidden";
}
});
</script>
<div id="slider" class="visible">
<img src="/img/nivoslider/slide1.jpg" />
<img src="/img/nivoslider/slide2.jpg" />
<img src="/img/nivoslider/slide3.jpg" />
</div><!-- end slider -->
答案 0 :(得分:1)
如果您正在使用jQuery,它看起来像你,为什么不这样做:
$('#slider').addClass('hidden').removeClass('visible')
这也引出了一个问题:为什么不酌情使用$('#slider').toggle()
或$('#slider').hide()
和$('#slider').show()
?
答案 1 :(得分:0)
只是一个问题:你怎么知道这个名字没有改变?您是否设置了CSS样式以匹配隐藏的类。
最重要的是,如果该类的唯一目的是改变可见性,为什么不直接更改它?
document.getElementById('slider').visibility = "hidden";
如果所有这些都不起作用,并且因为您已经在使用jQuery,请尝试使用
$("#slider").hide();
答案 2 :(得分:0)
如果你想确保你正在上课,那么你不必进行添加/删除,只想使用jquery进行替换,你可以这样做:
$('#slider').attr('class', 'hidden');
or
$('#slider').attr('class', 'visible');
这样你至少可以永远不同步,它永远只是其中一个值。