Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 事件处理程序的动态附件不工作_Javascript_Jquery - Fatal编程技术网

Javascript 事件处理程序的动态附件不工作

Javascript 事件处理程序的动态附件不工作,javascript,jquery,Javascript,Jquery,我只是在用js做一个小实验。是这样的,;我有一个ul,下面大约有5个li,现在我使用如下选择器为单击第一个li附加一个事件处理程序: var elem = $('ul li:nth-child('+ i +')'); 现在我添加funk函数,如下所示: var funk = function() { return i < 5 ? i++ : i = 0 ; } 现在,代码中有一些明显的错误,我无法解决,因为某种原因,funk()函数本身不起作用,因为I从不递增 有人能

我只是在用js做一个小实验。是这样的,;我有一个
ul
,下面大约有5个
li
,现在我使用如下选择器为单击第一个
li
附加一个事件处理程序:

     var elem = $('ul li:nth-child('+ i +')');
现在我添加funk函数,如下所示:

var funk = function() {
    return i < 5 ? i++ : i = 0 ;
}
现在,代码中有一些明显的错误,我无法解决,因为某种原因,
funk()
函数本身不起作用,因为I从不递增

有人能帮我附加一个动态事件处理程序吗


Ae-x

您的代码是正确的,问题在于声明。在调用func定义之前将其移动


问题在于func函数。它是一个变量,所以它最初被声明并设置为未定义,然后所有行都将被执行,但func未定义,所以它将抛出错误

您的代码是正确的,问题在于声明。在调用func定义之前将其移动


问题在于func函数。它是一个变量,所以它最初被声明并设置为未定义,然后所有行都将被执行,但func未定义,所以它将抛出错误

您的代码是正确的,问题在于声明。在调用func定义之前将其移动


问题在于func函数。它是一个变量,所以它最初被声明并设置为未定义,然后所有行都将被执行,但func未定义,所以它将抛出错误

您的代码是正确的,问题在于声明。在调用func定义之前将其移动


问题在于func函数。它是一个变量,所以它最初被声明并设置为未定义,然后所有行都将被执行,但func未定义,所以它将抛出错误

我已经为同样的问题创建了一个递归解决方案。这将仅在单击时为下一个列表项添加处理程序

$(文档).ready(函数(){
var i=1;
增加第(i)项;
函数addEventHandlerForNextItem(num){
var elem=$('ul li:n个子('+num+'));
元素开('点击',函数(){
log('element:'+elem[0].textContent);
警报('element:'+elem[0].textContent);
i=i+1;
增加第(i)项;
});
}
});

  • 一,
  • 二,
  • 三,

我已经为同样的问题创建了一个递归解决方案。这将仅在单击时为下一个列表项添加处理程序

$(文档).ready(函数(){
var i=1;
增加第(i)项;
函数addEventHandlerForNextItem(num){
var elem=$('ul li:n个子('+num+'));
元素开('点击',函数(){
log('element:'+elem[0].textContent);
警报('element:'+elem[0].textContent);
i=i+1;
增加第(i)项;
});
}
});

  • 一,
  • 二,
  • 三,

我已经为同样的问题创建了一个递归解决方案。这将仅在单击时为下一个列表项添加处理程序

$(文档).ready(函数(){
var i=1;
增加第(i)项;
函数addEventHandlerForNextItem(num){
var elem=$('ul li:n个子('+num+'));
元素开('点击',函数(){
log('element:'+elem[0].textContent);
警报('element:'+elem[0].textContent);
i=i+1;
增加第(i)项;
});
}
});

  • 一,
  • 二,
  • 三,

我已经为同样的问题创建了一个递归解决方案。这将仅在单击时为下一个列表项添加处理程序

$(文档).ready(函数(){
var i=1;
增加第(i)项;
函数addEventHandlerForNextItem(num){
var elem=$('ul li:n个子('+num+'));
元素开('点击',函数(){
log('element:'+elem[0].textContent);
警报('element:'+elem[0].textContent);
i=i+1;
增加第(i)项;
});
}
});

  • 一,
  • 二,
  • 三,

不是prittest,而是我如何动态附加事件处理程序的:

            var i = 1;

            var funk = function() {
                  return i < 5 ? ++i : i = 1 ;
            }

            changeHanderler = function(){
                str = funk();
                console.log(str);
                var elem = $('ul li:nth-child('+ i +')');
                elem.on('click.ga' , function(){
                    console.log('logged');
                    elem.off('click.ga');
                    changeHanderler();
                });

            }

            $('document').ready(function(){
                elem = $('ul li:nth-child('+ i +')');

                elem.on('click.ga' , function(){
                    changeHanderler();
                    console.log('logged');
                    elem.off('click.ga');
                });

            });
var i=1;
var funk=函数(){
返回i<5?++i:i=1;
}
changeHanderler=函数(){
str=funk();
console.log(str);
变量元素=$('ul li:n个子元素('+i+'));
元素on('click.ga',函数(){
console.log('logged');
元素关闭('click.ga');
changeHanderler();
});
}
$('document').ready(函数(){
元素=$('ulli:n个子元素('+i+'));
元素on('click.ga',函数(){
changeHanderler();
console.log('logged');
元素关闭('click.ga');
});
});

不太讲究但很有效,而且过度使用
on()
off()
jquery函数,可能应该使用
one()
函数

不是prittest,而是我如何动态附加事件处理程序的:

            var i = 1;

            var funk = function() {
                  return i < 5 ? ++i : i = 1 ;
            }

            changeHanderler = function(){
                str = funk();
                console.log(str);
                var elem = $('ul li:nth-child('+ i +')');
                elem.on('click.ga' , function(){
                    console.log('logged');
                    elem.off('click.ga');
                    changeHanderler();
                });

            }

            $('document').ready(function(){
                elem = $('ul li:nth-child('+ i +')');

                elem.on('click.ga' , function(){
                    changeHanderler();
                    console.log('logged');
                    elem.off('click.ga');
                });

            });
var i=1;
var funk=函数(){
返回i<5?++i:i=1;
}
changeHanderler=函数(){
str=funk();
console.log(str);
变量元素=$('ul li:n个子元素('+i+'));
元素on('click.ga',函数(){
console.log('logged');
元素关闭('click.ga');
changeHanderler();
});
}
$('document').ready(函数(){
元素=$('ulli:n个子元素('+i+'));
元素on('click.ga',函数(){
changeHanderler();
console.log('logged');
元素关闭('cl