PageSourceSearch

https://www.czloko.cz/web/czloko/js/odstavec_open.js?v=1790972033

js czloko.cz collected 2026-10-02 20:14:23 UTC 2,947 bytes, 82 lines download raw bytes

1
2$(function () {
3  $('.s_odstavec_open .odstavec-open-content').each(function () {
4    var $box = $(this).closest('.s_odstavec_open');
5    var isOpen = $box.hasClass('is-open');
6    if (!isOpen) $(this).hide();
7    $box.find('.odstavec-toggler')
8      .attr({ role: 'button', tabindex: '0', 'aria-expanded': isOpen });
9  });
10
11  $(document).on('click keydown', '.s_odstavec_open .odstavec-toggler', function (e) {
12    if (e.type === 'keydown' && e.key !== 'Enter' && e.key !== ' ') return;
13    e.preventDefault();
14
15    var $toggler = $(this);
16    var $box = $toggler.closest('.s_odstavec_open');
17    var $content = $box.find('.odstavec-open-content').first();
18
19    $content.stop(true, true).slideToggle(200, function () {
20      var expanded = $(this).is(':visible');
21      $toggler.attr('aria-expanded', expanded);
22      $box.toggleClass('is-open', expanded);
23    });
24  });
25});
26
27
28$(function () {
29  var $box = $('._odstavec_74399').first();
30  if (!$box.length) return;
31
32  $box.addClass('s_odstavec_open');
33
34  // 1) toggler = obalit první H2 (pokud ještě není)
35  var $h2 = $box.find('h2').first();
36  if (!$h2.length) return;
37
38  var $toggler = $h2.closest('.odstavec-toggler');
39  if (!$toggler.length) {
40    $h2.wrap('<div class="odstavec-toggler" aria-expanded="false" role="button" tabindex="0"></div>');
41    $toggler = $h2.parent();
42  } else {
43    $toggler.attr({ role: 'button', tabindex: '0' });
44  }
45
46  // 2) obsahový wrapper pouze pokud chybí
47  var $content = $box.children('.odstavec-open-content');
48  if (!$content.length) {
49    $box.children().not($toggler).not('.clear').wrapAll('<div class="odstavec-open-content"></div>');
50    $content = $box.children('.odstavec-open-content');
51  }
52
53  // 3) vytáhnout toggler před content, pokud je uvnitř
54  if ($content.find($toggler).length) {
55    $toggler.detach().insertBefore($content);
56  }
57
58  // 4) počáteční stav
59  var isOpen = $box.hasClass('is-open');
60  $toggler.attr('aria-expanded', isOpen ? 'true' : 'false');
61  if (!isOpen) $content.hide();
62
63  // 5) EXKLUZIVNÍ handler přímo na toggleru + blokace dalšího bublání
64  $toggler.off('.exclusiveToggle').on('click.exclusiveToggle keydown.exclusiveToggle', function (e) {
65    if (e.type === 'keydown' && e.key !== 'Enter' && e.key !== ' ') return;
66    e.preventDefault();
67    e.stopPropagation();
68    e.stopImmediatePropagation(); // zabrání spuštění jiných (globálních) handlerů
69
70    if ($toggler.data('animating')) return; // ochrana proti dvojkliku během animace
71    $toggler.data('animating', true);
72
73    $content.stop(true, true).slideToggle(200, function () {
74      var expanded = $(this).is(':visible');
75      $toggler.attr('aria-expanded', expanded);
76      $box.toggleClass('is-open', expanded);
77      $toggler.data('animating', false);
78    });
79
80    return false; // další pojistka (preventDefault + stopPropagation)
81  });
82});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.