2014-10-08 94 views
0

我有三个内容框,我想显示和隐藏使用控件。 的HTML如下:显示/隐藏内容不重新加载页面

<div id="leermat1"> 
    Content here 
    <a class="pag-next">Next</a> 
<a class="pag-prev">Previous</a> 
</div> 
<div id="leermat2"> 
    Content here 
    <a class="pag-next">Next</a> 
<a class="pag-prev">Previous</a> 
</div> 
<div id="leermat3"> 
    Content here 
    <a class="pag-next">Next</a> 
<a class="pag-prev">Previous</a> 
</div> 

我有两个锚PAG-next和PAG-分组,将控制其内容的div应在任何给定点可见:

我想写jquery,例如,当#leermat1'pag-next'被点击时,它隐藏#leermat1并显示#leermat2。然后当#leermat1被隐藏并且#leermat2显示时,当点击'.pag-next'时,它隐藏#leermat2并显示#leermat3。

另外'pag-prev'应该以相同的方式工作。

我开始以下,但不知道从哪里去。

$(document).ready(function() { 
    $('.pag-next').on('click',function() { 
     $('#leermat1').addClass('hide'); 
     $('#leermat2').addClass('show'); 
    }); 
}); 

还有一件事是'.pag-next'在它显示#leermat3后应该停止工作。

回答

0

这是通过一个小试验和错误为我工作。虽然我不确定这是否是最有效的解决方案。

  $('#leermat1 .pag-next').on('click',function(){ 
      $('#leermat1').addClass('hide'); 
      $('#leermat1').removeClass('show'); 
      $('#leermat3').addClass('hide'); 
      $('#leermat3').remove('show'); 
      $('#leermat2').addClass('show');  
     }); 
     $('#leermat2 .pag-next').on('click',function(){ 
      $('#leermat1').removeClass('show'); 
      $('#leermat2').addClass('hide'); 
      $('#leermat2').removeClass('show'); 
      $('#leermat3').addClass('show'); 
     }); 

     $('#leermat2 .pag-prev').on('click',function(){ 
      $('#leermat2').addClass('hide'); 
      $('#leermat2').removeClass('show'); 
      $('#leermat1').addClass('show'); 
      $('#leermat3').removeClass('show'); 
     }); 
     $('#leermat3 .pag-prev').on('click',function(){ 
      $('#leermat3').addClass('hide'); 
      $('#leermat2').addClass('show'); 
      $('#leermat1').addClass('hide'); 
      $('#leermat3').removeClass('show'); 
      $('#leermat1').removeClass('show'); 
     }); 
+0

非常感谢任何意见/建议,以改善这一点。这将有助于和需要相同解决方案的访问者。 – 2014-10-10 19:18:44

0

看起来像你的锚标签,你没有给它一个类。

<a href="pag-next">Next</a> 

然后,您继续在您的JQuery代码中向不存在的类添加点击函数。

$('.pag-next').on('click',function() 

尝试将class="pag-next"添加到您的定位标记。

1

你需要这个

$('[class^=pag-]').click(function() { 
    var elem = $('[id^=leermat]').filter(":visible"); // take the visible element 
    var num = Number(elem[0].id.match(/\d+$/)[0]); // take the number from it 
    var step = $(this).is('.pag-next') ? 1 : -1; // ternary operator 
    $('#leermat'+ (num + step)).show(); // show next or back 
    elem.hide(); // hide the visible element 
}); 
+0

这真的很好..谢谢阿米特。唯一的问题是,现在当它显示第三个'leermat'id是最后一个内容div时,如果用户再次点击'pag-next',它会隐藏第三个内容div,因为没有什么可以用页面替换空白。有没有办法让pag-next在它显示'leermat3'后不工作。所以从那里只能返回'page-prev'。 – 2014-10-08 16:07:07

相关问题