Error undefined不是.click()的函数

Error undefined is not a function for .click()

本文关键字:函数 click undefined 不是 Error      更新时间:2023-09-26

我一直得到undefined is not a function错误,我不知道为什么,谁能帮助说明。

这里是整段代码

 (function(){
                var sliders = $('section.content-25').hide();
                var slidersOrder = sliders.each(function(i){
                                                var i = i - 1;
                                                $(this).addClass("slider"+(i+1));
                                            });
                $(".project-wrapper").on('click', function(){
                    var btnOrder = $(this).index();
                    var sliderClass = ("slider"+btnOrder);
                     if (sliders.hasClass("slider"+btnOrder)) {
                            sliderClass.show();
                     }; 
                    event.preventDefault();
                 });//end of .on('click') function
            })();// end self envoking functions

EDIT2: jsfiddle.net/Grimbode/LpuLE/4

编辑:试着从你的代码中理解。下面是一个工作示例。http://jsfiddle.net/Grimbode/LpuLE/3/

你的代码有几个问题。我修好了大部分。您只需要确保这部分:var sliderClass = ("slider"+btnOrder);是您真正想要做的。在我看来,这是错误的。看起来好像你试图访问一个元素,它应该看起来像:var sliderClass = $("#slider "+btnOrder);或类似的东西。

$('#slider1').hide();
$(".project-wrapper").on('click', function(){
                    var btnOrder = $(this).index();
                    alert(btnOrder);
                    var sliderClass = $("#slider"+btnOrder);
                     if (sliderClass.hasClass("slider"+btnOrder)) {
                            sliderClass.show();
                     }
 });

你在代码中使用了一个未定义的变量-

if (sliders.hasClass("slider"+btnOrder)) {

slider 没有在函数中任何地方定义。

你的js有很多问题,我认为:

其中定义了sliders变量??

var sliderClass // I think you are trying to create jQuery DOM object here which is not correct

应该是这样的

var sliderClass = $(".slider"+btnOrder);