简体   繁体   English

单击手风琴时 JQuery 手风琴内容的偏移量 header

[英]Offset on JQuery accordion content when click on accordion header

I want to play with offset and animate to scroll to the content of the accordion , when user click on his header.当用户单击他的 header 时,我想使用offsetanimate滚动到accordion的内容。 Live here .住在这里

I have 30 accordion on my page, so I tried this:我的页面上有 30 个手风琴,所以我尝试了这个:

  $(".ui-accordion").on("click",function(){
       var $acc = $(this);
        $('html,body').animate({
    scrollTop: $acc.offset().top
  }, 500);
    });

And this:和这个:

  $(".ui-accordion-header").on("click",function(){
       var $acc =  $(this).next(".ui-accordion-content");
        $('html,body').animate({
    scrollTop: $acc.offset().top
  }, 500);
    });

But didn't worked, I didn't saw console error too.但是没有用,我也没有看到控制台错误。 I tried to insert an alert example on the function to show if is a problem of the scrolltop feature, but alert didn't worked too, so I think that the click function is not working.我试图在 function 上插入一个alert示例,以显示是否是scrolltop功能的问题,但警报也没有用,所以我认为单击 function 不起作用。

HTML structure of one of the item: HTML 结构中的一项:

<div class="column">
<div class="text-box">
<h3>Titulación</h3>
<p>Información y documentación / Comunicación Audiovisual</p>
<h3>Puesto a desempeñar</h3>
<p>Gestor documental/ Editor medios audiovisuales</p>
<h3>Tipo de beca</h3>
<p>Entidad sin ánimo de lucro: 1 año media jornada sin compromiso</p>
</div>
<div id="accordion" class="ui-accordion ui-widget ui-helper-reset" role="tablist">
  <h3 class="ui-accordion-header ui-corner-top ui-accordion-header-collapsed ui-corner-all ui-state-default ui-accordion-icons" role="tab" id="ui-id-1" aria-controls="ui-id-2" aria-selected="false" aria-expanded="false" tabindex="0"><span class="ui-accordion-header-icon ui-icon ui-icon-triangle-1-e"></span>Más información</h3>
  <div class="ui-accordion-content ui-corner-bottom ui-helper-reset ui-widget-content" id="ui-id-2" aria-labelledby="ui-id-1" role="tabpanel" aria-hidden="true" style="display: none; height: 518px;">
  <h3>Breve descripción del puesto</h3>
<p>Recopilación y clasificación de material digitalizado del archivo de la Fundación/ Edición audiovisual</p>
<h3>Empresa</h3>
<p>Fundación Centro de Estudios Presidente Rodríguez Ibarra (FUNDCERI)</p>
<h3>Localización del puesto</h3>
<p>Sede Fundación</p>
<h3>Horario de trabajo</h3>
<p>Mañana</p>
<div class="boton-proyecto-inicia"><a class="boton-solicitudes" title="Inscripción Premios Emprendimiento" href="https://www.fundacioncb.es/inscripcion-premios-emprendimiento/">Inscribirse</a></div>
  </div>
</div>
</div>

Your code is working.您的代码正在运行。 But keep in mind that you should run you JavaScript code AFTER the dom elements been rendered.但请记住,您应该在渲染 dom 元素之后运行 JavaScript 代码。 or use on to do live binding.或使用on进行实时绑定。 Change your code something like this:改变你的代码是这样的:

 $("html").on("click", ".ui-accordion", function(){
   var $acc = $(this);
   $('html,body').animate({
      scrollTop: $acc.offset().top}, 
    500);});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM