我的网页内容使用不同的链接进行切换,使用jQuery“showonlyone”功能一次显示一个div
。加载页面时,不应显示任何div。我把它工作得很好,直到我试图在其中一个div newboxes1
中放置一个图片滑块(bxSlider)。
在框外,bxSlider工作正常。在其中,图片不显示。查看实时示例here。
以下是我的代码:
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
function showonlyone(thechosenone) {
$('.newboxes').each(function(index) {
if ($(this).attr("id") == thechosenone) {
$(this).show();
}
else {
$(this).hide();
}
});
}</script>
</script>
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<script src="jquery.bxSlider.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$(function(){
var slider = $('#slidersample').bxSlider({
mode:'fade',
controls: false
});
$('#bx-prev-sample').click(function(){
slider.goToPreviousSlide();
return false;
});
$('#hover-next-g-sample').click(function(){
slider.goToPreviousSlide();
return false;
});
$('#bx-next-sample').click(function(){
slider.goToNextSlide();
return false;
});
$('#hover-next-d-sample').click(function(){
slider.goToNextSlide();
return false;
});
});
});
</script>
</head>
<body>
<div id="left-menu">
<a id="myHeader1" href="javascript:showonlyone('newboxes1');" >LINK 1</a><br />
<a id="myHeader2" href="javascript:showonlyone('newboxes2');" >LINK 2</a><br />
<a id="myHeader3" href="javascript:showonlyone('newboxes3');" >LINK 3</a>
</div>
<div class="newboxes" id="newboxes1">DIV 1
<!-- SLIDER -->
<div id="slider" style="margin-top: 0px; width="580 px"; height="375 px">
<div class="bx-prev"><div id="bx-prev-sample">←</div></div>
<div class="bx-next"><div id="bx-next-sample">→</div></div>
<div class= "hover-next-g"><div id="hover-next-g-sample" style="height:100%; width:100%"></div></div>
<div class= "hover-next-d"><div id="hover-next-d-sample" style="height:100%; width:100%"></div></div>
<ul id="slidersample" width="580px" height="375 px" style="margin:0px ; padding:0px">
<li><img src="images/1.jpg" width="580" height="375" /></li>
<li><img src="images/2.jpg" width="580" height="375" /></li>
<li><img src="images/3.jpg" width="580" height="375" /></li>
</ul>
</div>
<!-- SLIDER END-->
</div>
<div class="newboxes" id="newboxes2">DIV 2<br /></div>
<div class="newboxes" id="newboxes3">DIV 3</div>
</body>
</html>
我用
.newboxes {display:none;}
CSS中的因此在加载页面时没有显示任何div。从CSS中删除它可以解决bxSlider问题,因为您可以看到here。但是,页面加载时会显示内容,而我希望隐藏所有内容。任何在代码中其他地方使用display:block
或display:none
的尝试均未成功。
有人能想出解决这个问题的方法吗?谢谢。
答案 0 :(得分:18)
我遇到了与bxSlider插件类似的问题:当包含它的DIV最初隐藏display:none
时,当我使DIV可见$('#div-id').show();
时,幻灯片显示不会出现。仅出现幻灯片控制按钮。然后我解决了这个问题:
<script>
var mySlider;
$(function() {
mySlider = $('#slider').bxSlider({
easing: 'easeInCubic',
displaySlideQty: 3,
moveSlideQty: 1,
infiniteLoop: false,
hideControlOnEnd: true
});
$("#processSignUp").click(function() { // button that sets the DIV visible
$("#trainings-slide").show(); // DIV that contain SLIDER
mySlider.reloadSlider(); // Reloads the slideshow (bxSlider API function)
});
});
</script>
正如您所看到的,我重新加载幻灯片刚刚显示了DIV(包含滑块)并且效果非常好。也许这有助于解决您的问题并避免使用可见性:隐藏和其他技巧。
答案 1 :(得分:6)
我知道这个问题是在前一段时间被问过的,但我有同样的问题。我不知道最新的bxSlider和display:none。如果内容包含在显示设置为无的div中,它似乎不会读取内容。
到目前为止,通过切换visibility:hidden
和visibility:visible
代替显示,我已经解决了这个问题。
答案 2 :(得分:2)
您可以使用visibility:hidden和visibility:visible,但会遇到一些麻烦。你可以使用高度:0px;溢出:隐藏; 我用最后的解决方法
答案 3 :(得分:2)
另一种解决方案是允许加载bxslider,然后一旦隐藏就隐藏它。
<script>
var mySlider;
$(function() {
mySlider = $('#slider').bxSlider({
easing: 'easeInCubic',
displaySlideQty: 3,
moveSlideQty: 1,
infiniteLoop: false,
hideControlOnEnd: true,
onSliderLoad: function() {
$('#trainings-slide').hide();
}
});
});
</script>