.click事件不仅仅用于最后一个按钮(在for循环中定义的事件)

时间:2013-10-03 20:41:12

标签: for-loop jquery-click-event

我创建了一个函数,设置.click以传递给它的按钮数。

当另一个Jquery检测到页面上的按钮数量时,将调用该函数

...
var n = $(".button").length + 1;
...
set_navig(n);
...

function set_navig(n){
    for(i=1 ; i<n ; i++){
        var btn = "#pb" + i;
        $(document).ready(function(){
            $(btn).click(function(){
                alert('Working!');
            });
        });
    }
}

我尝试删除或添加页面上的按钮 - 正确(n)传递给函数,但总是只有最后一个根本不起作用。

任何想法?


向所有人提供这里有很多好东西的Thnx。当我开始学习时,你就是Jquery知识的主要来源。

1 个答案:

答案 0 :(得分:0)

好吧,我原本以为你应该使用i&lt; = n,但你传递长度+ 1(顺便说一下这是不寻常的)。你可以传递按钮数组而不是长度。然后你可以遍历每一个。

我没有看到除了样式之外的代码的特定错误,所以也许你没有得到你想象的那么多.button对象,或者你可能在最后一个ID中输入了一个拼写错误。您应该粘贴html代码的示例,或者使用alert()自己调试它以查看传递的值。

为了将来参考,许多语言中的常见循环是:for(i=0;i<n;i++){}for(i=1;i<=n;i++){}我会说传递长度+ 1到你的函数是非常糟糕的做法。