jQuery Нажмите метку «Далее» из nav-pills после отметки времени - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь нажать на следующую навигационную ссылку, используя jquery. Я использую Bootstrap 4 с Jquery 3.4.1. Я использую Vertical Nav Pills, которые я хочу активировать по истечении определенного промежутка времени.

image

Jquery

jQuery(document).ready(function(e) {

    var click1 = 0;
    setInterval(function(){
        if(jQuery('.nav-pills .nav-link').length == click1)
        {
            click1 = 0; 
        }           
        jQuery('.nav-pills .nav-link:eq( '+click1+' ) a').trigger('click');
        click1 ++;  

    },500);

});

Я не уверен, почему он не работает. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 28 апреля 2020

Как упоминалось в моем комментарии, селектор не выбирал нужные элементы.

jQuery('.nav-pills .nav-link:eq( '+click1+' ) a').trigger('click');

выберет тег <a> элемента с классом .nav-link. Поскольку элемент .nav-link сам по себе является тегом <a>, его просто необходимо удалить с конца:

function toggleActiveLink() {
  var interval = setInterval(function(){
    if(jQuery('.nav-pills .nav-link').length == click1)
    {
      click1 = 0; 
    }           
    jQuery('.nav-pills .nav-link:eq( '+click1+' )').trigger('click');
    click1 ++;  

  },500);
  return interval;
}

var click1 = 0;
var activeLinkInterval = toggleActiveLink();

$('.nav-link').on('mouseenter', function() {
  clearInterval(activeLinkInterval);
}).on('mouseleave', function() {
  activeLinkInterval = toggleActiveLink();
});
image
...