首页 > 解决方案 > var 报告 r.fn.init(1) 中的 jQuery 目标 - 我试图比较的是同一个目标被点击了两次

问题描述

我有这段代码,我试图确定同一个目标是否被点击了两次。我不想使用类的 id。如果应该工作。单击的对象存储在 var selected 中,然后再次进行比较。我得到的是 r.fn.init(1) ???

ps> 在 codepen 上找到了这段代码(忘记了谁),但是谁让它做得很好,我希望扩展它......

    $(document).ready(function(){
        var selected;
        var same = false;
            var headers = ["H1","H2","H3","H4","H5","H6","IMG"];

            $(".accordion").click(function(e) {
            var target = e.target, name = target.nodeName.toUpperCase();

            if ($(target) == $(selected)){ same = true } else { same = false }
            selected = $(target);

            if($.inArray(name,headers) > -1) {
                var subItem = $(target).next();

                //slideUp all elements (except target) at current depth or greater
                var depth = $(subItem).parents().length;
                var allAtDepth = $(".accordion p, .accordion .collapsable").filter(function() {
                if($(this).parents().length >= depth && this !== subItem.get(0)) {
                    return true; 
                }
                });

                $(allAtDepth).slideUp("fast");

                //slideToggle target content and position top of element at top of page
                subItem.slideToggle("fast", 
                    function(){
                            $('html, body').animate({ scrollTop: $(target).offset().top-50 }, 200)
                    }
                    )
                }
            })
        })

标签: jquery

解决方案


已解决...将 var 作为数组访问,如 $(target)[0] == $(selected)[0]

作品


推荐阅读