代码之家  ›  专栏  ›  技术社区  ›  Ben Shelock

点击事件继续触发

  •  0
  • Ben Shelock  · 技术社区  · 16 年前

    $('#save_albums').click(function(){
        for(var i = 1; i <= 5; i++){
            html = $('#your_albums ol li').eq(i).html();
            alert(html);
        }
    });
    

    在我看来很无辜。。。

    $(function(){
        $('#query').keyup(function(){
            var text = encodeURI($(this).val());
            if(text.length > 3){                        
                $('#results').load('search.php?album='+text, function(){
    
                    $('.album').hover(function(){
                        $(this).css('outline', '1px solid black')
                    },function(){
                        $(this).css('outline', 'none')
                    });
    
                    $('.album').click(function(){
                        $('#fores').remove();
                        $('#yours').show();                                 
    
                        if($('#your_albums ol li').length <= 4){
                            albumInfo = '<li><div class="album">' + $(this).html() + '</div></li>';
    
                            if($('#your_albums ol li').length >= 1){
                                $('#your_albums ol li').last().after(albumInfo);
                            }
                            else{
                                $('#your_albums ol').html(albumInfo);
                            }
                        }
                        else{
                            alert('No more than 5 please');
                        }
                    });
    
                    $('#clear_albums').click(function(e){
                        e.preventDefault;
                        $('#your_albums ol li').remove();
                    });
    
                    $('#save_albums').click(function(){
                        for(var i = 1; i <= 5; i++){
                            html = $('#your_albums ol li').eq(i).html();
                            alert(html);
                        }
                    });
    
                });
            }
            else{
                $('#results').text('Query must be more than 3 characters');
            }
        });
    }); 
    
    1 回复  |  直到 16 年前
        1
  •  4
  •   Michael Stum    16 年前

    基本上是这样做的:每次启动KeyUp时,都会加载结果并附加一个附加的。单击处理程序到$(“#save#albums”),这是不好的(jQuery可以将多个函数绑定到一个事件,因此如果调用$('something'),请单击(function(){alert('x');});3次,您将收到3个警报)

    根据具体使用情况,您可以调用$('#save#albums')。取消绑定('单击');要在添加之前删除所有单击处理程序,请执行以下操作:

                // Unbind existing
                $('#save_albums').unbind('click');
    
                $('#save_albums').click(function(){
                    for(var i = 1; i <= 5; i++){
                        html = $('#your_albums ol li').eq(i).html();
                        alert(html);
                    }
                });