Максимальный размер стека вызовов превышен в WooCommerce - PullRequest
0 голосов
/ 17 октября 2018

Здесь у меня есть HTMl-структура:

<li class="description_tab" id="tab-title-description" role="tab" aria-controls="tab-description">
      <a href="#tab-description">Description</a>
</li>

Это моя функция JS:

jQuery('body.woocommerce div.product .woocommerce-tabs ul.tabs li').click(function () {
    jQuery('a', this).click();
});

Я пытался проверить, была ли нажата вкладка.Если это правда, я вызову внутреннюю часть нажатой вкладки.Но я получаю сообщение об ошибке при загрузке страницы:

Uncaught RangeError: Превышен максимальный размер стека вызовов
в String.replace ()
в Function.trim (jquery.js)? ver = 1.12.4: 2)
в новом a.fn.init (jquery-migrate.min.js? ver = 1.4.1: 2)
в n (jquery.js? ver = 1.12.4: 2)
в HTMLLIElement.(custom.js? ver = 4.9.8: 77)
в HTMLLIElement.dispatch (jquery.js? ver = 1.12.4: 3)
в HTMLLIElement.r.handle (jquery.js? ver = 1.12.4: 3)
в Object.trigger (jquery.js? Ver = 1.12.4: 3)
в Object.a.event.trigger (jquery-migrate.min.js? Ver = 1.4.1: 2)
в HTMLAnchorElement.(jquery.js? ver = 1.12.4: 3)

Что не так?

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

используйте $(this) вместо this

jQuery('body.woocommerce div.product .woocommerce-tabs ul.tabs li').click(function () {
    jQuery('a', $(this)).click();
});
0 голосов
/ 17 октября 2018

Вот как это работает сейчас.Работает, но много кода:

jQuery('body.woocommerce div.product .woocommerce-tabs ul.tabs li').click(function () {
        var description = jQuery('.woocommerce-Tabs-panel--description');
        var reviews = jQuery('.woocommerce-Tabs-panel--reviews');
        if (!jQuery(this).hasClass('active')) {
            if (jQuery(this).hasClass('reviews_tab')) {
                jQuery('.description_tab').removeClass('active');
                jQuery(this).addClass('active');
                description.hide();
                reviews.show();
            } else if (jQuery(this).hasClass('description_tab')) {
                jQuery('.reviews_tab').removeClass('active');
                jQuery(this).addClass('active');
                reviews.hide();
                description.show();
            }
        }
    });

Я не знаю, смогу ли я сделать это лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...