制作听众而不是调用该函数。显示和隐藏div

时间:2014-07-28 12:49:48

标签: javascript jquery html function

<a onclick="showhide('1');">asd1</a>
<a onclick="showhide('2');">asd2</a>
<a onclick="showhide('3');">asd3</a>

<div class="hide" id="1">asd1</div>
<div class="hide" id="2">asd2</div>
<div class="hide" id="3">asd3</div>

<script>
    function showhide(id){
        if (document.getElementById) {
            var divid = document.getElementById(id);
            var divs = document.getElementsByClassName("hide");
            for(var i=0;i<divs.length;i++) {
                divs[i].style.display = "none";
            }
            divid.style.display = "block";
            $('html, body').animate({scrollTop: $(divid).offset().top}, 'slow');
        } 
        return false;
    }
</script>

我这样做是为了显示和隐藏div。我怎样才能建立一个监听器,而不是每个人都调用该函数?

2 个答案:

答案 0 :(得分:0)

对于您的示例,您只需使用索引

<a href="#" class="myAnchor">asd1</a>
<a href="#" class="myAnchor">asd2</a>
<a href="#" class="myAnchor">asd3</a>

<div class="hide">asd1</div>
<div class="hide">asd2</div>
<div class="hide">asd3</div>

<script>
    $(function() {
        $('.myAnchor').on('click', function(e) {
            e.preventDefault();
            $('.hide').hide().eq( $('.myAnchor').index(this) ).show();
        });
    });
</script>

FIDDLE

答案 1 :(得分:-1)

看看.change jquery方法