关于点击功能的动态jQuery?

时间:2013-02-26 10:57:01

标签: jquery

在我的一个搜索栏中,在键盘上,div加载了另一个文件的内容。

<input type='text' value='search' id='search' />

我的这个任务的JS代码是:

$("#search").keyup(function(){  
        var search = $(this).val(); 
        var url = "model/quickpicks_backend.php"; 
        var league = $('#league_form').val();
        var position = $('#compose').val();
        var data = "search="+ search +"&league="+ league +"&position="+ position;
        $('#load').load(url, data);
    });

所有URL参数都有效地传递给model / quickpicks_backend.php,并根据传递的三个参数的值,PHP将回显0到5个结果。无论回应什么,都会被包含在“结果”类中。还有一些JS代码。它如下:

$('.sky').click(function(){
        var num = $('#num').text();
        var num_trim = num.trim();
        var new_num = Number(num) + Number(1);
        $('#num').text(new_num);
        var id = $(this).attr('id');
        var player_id = Number(id) - Number(5);
        var league = $(this).attr('title');

        $.ajax({  
            type: 'GET',  
            url: 'model/quickpicks_list.php',  
            data: 'num='+ num +'&player_id='+ player_id +'&league='+ league,
            dataType: 'JSON',
            success: function(data)
            {  
                $.parseJSON(data);

                $('#'+ id).fadeOut('fast');
                $('#search').val('');
                $('#num').text(new_num);    
                $('#'+ num_trim).html(data.value);

                if(num == 5)
                {
                      alert("done");
                }
            }
        });
    });

问题在于,无论何时单击.sky,都不会收集来自最近点击的元素的数据。相反,从第一次单击h1.sky开始,它们都是相同的信息。我想也许可以使用

$('.sky').each(function(index) { 
     $(this).click(function(){

    });
});

相反会起作用。但是,事实并非如此。使用

$('.sky').live();

有点工作但是在第5次点击(应该触发警报的点击)时,它会多次发出警告。

可以找到一个工作示例here

2 个答案:

答案 0 :(得分:0)

语法是

$('.sky').live("click",function(
   ........................
));

这可能是问题

答案 1 :(得分:0)

尝试在alert语句之后使用break语句,以便它将移出循环。