Функции jQuery Tab не работают с версиями jQuery-UI

Я реализовал ползунок диапазона, перейдя по этой ссылке:

Как создать собственные ползунки диапазона с минимальным и максимальным значением с помощью CSS и JavaScript.

Для справки jquery-ui я попробовал использовать две версии ниже.

<script src = "https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
<script src = "https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>

Ползунок диапазона работает нормально с обеими версиями jQuery-ui. Но функциональность вкладок ниже не работает. Он не затрагивает debugger внутри своей функции после добавления этих jquery-ui версий. Моя jQuery версия — jQuery v3.5.0.

$("#tabs").tabs({
    "onShow": function (el) {
        debugger;
    }
});

Может ли кто-нибудь предложить ссылку на jquery-ui, поддерживающую версию v3.5.0.

Можете ли вы предоставить полный фрагмент, включая ссылки CDN на ваши версии jquery/ui и HTML, который вы используете? См. минимально воспроизводимый пример . Стартовый набор фрагментов стека также может помочь: stackoverflow.com/tags/jquery-ui/info

freedomn-m 28.09.2023 15:27

@mplungjan обработчик событий для "onShow" не запускается (для меня в вашей скрипке) - рискну предположить, что это потому, что jquery-ui не запускает событие onShow... но это только я... ️ 🔁 api.jqueryui.com/tabs

freedomn-m 28.09.2023 15:32

«Он не обращается к отладчику внутри своей функции после добавления этих версий jquery-ui». - вы хотите сказать, что обработчик событий попадает в разные версии? Что вы используете для вкладок, если не jquery-ui ? Вкладки jquery-ui не запускают событие onshow: api.jqueryui.com/tabs

freedomn-m 28.09.2023 15:33

@freedomn-m YW. вкладки работали, но onShow не существует, и показ не является событием

mplungjan 28.09.2023 15:47
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
51
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Нет никакого onShow

  • «шоу» не событие, а используется для установки опций

  • Событие «загрузка» срабатывает только при загрузке контента с удаленного устройства.

Но вы можете использовать «создать» плюс активировать и/или перед активировать

активировать(событие, пользовательский интерфейс) Тип: вкладкиактивировать
Срабатывает после активации вкладки (после завершения анимации). Если вкладки ранее были свернуты, ui.oldTab и ui.oldPanel будут пустыми объектами jQuery. Если вкладки сворачиваются, ui.newTab и ui.newPanel будут пустыми объектами jQuery.
Примечание. Поскольку событие активации запускается только при активации вкладки, оно не запускается для начальной вкладки при создании виджета вкладок. Если вам нужен хук для создания виджета, используйте событие create.

$("#tabs").tabs({
  "create": function(el,ui) { 
    console.info("running",ui.panel[0].id);
  },
  "beforeActivate": function(el,ui) { 
    console.info("clicked",ui.newPanel[0].id);
  },
  "activate": function(el,ui) { 
    console.info("activated",ui.newPanel[0].id);
  }
});

$("#tabs").tabs({
  "create": function(el,ui) { 
    console.info("running",ui.panel[0].id);
  },
  "beforeActivate": function(el,ui) { 
    console.info("clicked",ui.newPanel[0].id);
  },
  "activate": function(el,ui) { 
    console.info("activated",ui.newPanel[0].id);
  }
});
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.min.js"></script>
<script src = "https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>
<link rel = "stylesheet" href = "//code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">


<div id = "tabs">
  <ul>
    <li><a href = "#tabs-1">Nunc tincidunt</a></li>
    <li><a href = "#tabs-2">Proin dolor</a></li>
    <li><a href = "#tabs-3">Aenean lacinia</a></li>
  </ul>
  <div id = "tabs-1">
    <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper
      leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum.
      Nunc tristique tempus lectus.</p>
  </div>
  <div id = "tabs-2">
    <p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean
      aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat.
      Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
  </div>
  <div id = "tabs-3">
    <p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia
      nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
    <p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna
      ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum.
      Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
  </div>
</div>

Я попробовал это create мероприятие сейчас. Это событие происходит при загрузке страницы. Но он не срабатывает, когда мы нажимаем на вкладку.

Limna 28.09.2023 16:10

Тогда используйте api.jqueryui.com/tabs/#event-beforeActivate

mplungjan 28.09.2023 16:11

Насколько я понимаю, вы используете более одной библиотеки jquery в качестве источника своего кода, и именно поэтому один из виджетов jquery может работать, а другой не работать. Итак, вы проверили, в чем ошибка в консоли? Вы можете использовать JQuery.noConflict(), где вы видите $. https://api.jquery.com/jquery.noconflict/

Другие вопросы по теме