【问题标题】:Did I do this properly? .each() & .click() jquery我这样做正确吗? .each() & .click() jQuery
【发布时间】:2011-03-31 17:16:45
【问题描述】:

我做错了吗?或者有更好的方法吗?

这是我的代码:

//Create as many li's as needed
for(var t = 1; t <= pageLimit; t++) {
        if (t <= 9) {
            $('ul.thumb-list').append('<li><p>PAGE ' + t + '</p><img id="' + t + '" src="../jpeg/thumbnails/0' + t + '.jpg" /></li>'); 
        } else if (t >=10) {
            $('ul.thumb-list').append('<li><p>PAGE ' + t + '</p><img id="' + t + '" src="../jpeg/thumbnails/' + t + '.jpg" /></li>'); 
        }



        // for each li that gets click, produce a click function that will get its id               
        $('ul.thumb-list li').each(function() {
                $(this).click(function() {
                    var currId = $(this).attr('id');

                    //Testing to see if it is right
                    alert('currId is: ' + currId);

                    if(currId <=9){
                        $('#page' + currId).empty();
                        $('#page' + currId).append('<img class="touch" src="../jpeg/pages/0' + currId + '.jpg"/>');
                    } else if (currId >=10) {
                        $('#page' + currId).empty();
                        $('#page' + currId).append('<img class="touch" src="../jpeg/pages/' + currId + '.jpg"/>');
                    }


                    jQT.goTo($('#page' + currId), 'slide');
                });
            });

}

我的主要问题是我是否正确设置了点击和每个功能.. 还是应该以其他方式?

我的警报也不会显示 currId。有什么原因吗?

【问题讨论】:

    标签: jquery function foreach


    【解决方案1】:

    首先你不需要每个。你可以这样做:

    $('ul.thumb-list li').click(function(){
        // function body
    });
    

    其次,您要添加到列表中的列表项上没有 ID。这是设置了 ID 的图像。

    我认为您想要的代码类似于:

    $('ul.thumb-list li').click(function(){
        var currId = $('img', this).attr('id');
        alert('currId is: ' + currId);
    
        // rest of your code
    });
    

    【讨论】:

    • 她选择了每个li,但需要去孩子img 获取id,假设我正确阅读了她的HTML。
    • 啊,谢谢!我知道出了点问题。我是 jquery 新手,感谢您的帮助
    【解决方案2】:

    如果您希望能够点击多个标签,您应该使用

    $('tag').live('click', function(){
    
    });
    

    它更有效,但如果您只有 1 个标签需要能够点击(比如一个 ID),那么 .click() 应该没问题。

    【讨论】:

      猜你喜欢
      • 2012-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 2019-08-23
      • 1970-01-01
      相关资源
      最近更新 更多