首页 > 解决方案 > JavaScript - 该函数仅在设置断点后执行

问题描述

这是我用于动态附加元素的 jQuery。jq -select-ring按钮在 DOM 上可以是多个。基本上,它是通过 Ajax 调用附加的。

let cKeyTabShift = false;    
$("body").on("keydown", ".jq-select-ring", function (e) {
            if (!isMobileSite) {
                var keyCode = (e.keyCode ? e.keyCode : e.which);
                if (keyCode == 9) {
                    if (e.shiftKey) {
                        cKeyTabShift = true;
                    } else {
                        cKeyTabShift = false;
                    }
                }
            }
        });

    $("body").on("focusout", ".jq-select-ring", function () {
            if (!isMobileSite) {
                const parentIndex = $(this).closest('.flex-item').index();
                const $elmSliders = $(this).closest('.container').find("div[id^='touchCarousel-'][role='tabpanel']");
                const $nextArrow = $(this).closest('.touch-carousel').find('.touchcarousel-next');
                const $prevArrow = $(this).closest('.touch-carousel').find('.touchcarousel-prev');
    
                if (typeof ($elmSliders) != "undefined" && $elmSliders.length > 0) {
                    if ($elmSliders.length > 1) {
                        if (parentIndex == 1 && cKeyTabShift == false) {
                            if (!$nextArrow.hasClass('endArrows')) {
                                $nextArrow.trigger('click');
                            }
                        }
                        if (parentIndex == 0 && cKeyTabShift == true) {
                            if (!$prevArrow.hasClass('endArrows')) {
                                $prevArrow.trigger('click');
                                cKeyTabShift = false;
                            }
                        }
                    }
                }
            }
        });

问题是当我只添加断点时触发点击被调用。

$nextArrow.trigger('点击'); $prevArrow.trigger('点击');

标签: javascriptjquery

解决方案


推荐阅读