jQuery - 通配符* - 缓存

时间:2012-01-12 17:25:23

标签: jquery

伙计们我在jquery中遇到了通配符的问题。请尽可能帮助。

我正在使用类似jQuery的函数将点击绑定到id,例如。 proceed_10,proceed_11。现在,如果我第一次点击proceed_10,一切正常。但是,如果我再次单击id为proceed_10的图像,则执行两次。然后,如果我点击其他一些具有id proceed_5的继续图像,则执行三次。以下是要审核的次要代码段:

$("[id*='applybut_']").live('click',function(){ 

        var idfinder = null; var currid = null;
        idfinder = $(this).attr('id').split('_');
        currid = idfinder[1];
        $.ajax({
            url: "someurl",   
            type: 'POST',
            dataType: 'json',
            data: {},
            error: function(data){ },
            success: function(data){
                if(data.success == true)
                {
                    messyhtml+= '<img src="'+proceedimgsrc+'" id="proceed_'+currid+'" style="cursor:pointer;">';
                    $("[id*='proceed_']").live('click',function(){
                        var foostr = $(this).attr('id').split('_');
                        var fooid = foostr[1];
                        var barid = $('input[name="bar_id"]:checked').val();
                            if(fooid != '' && barid != '')      //This loops executes twice,thrice, and so on...
                            {
                                $.ajax({
                                    url: "someurl",   
                                    type: 'POST',
                                    dataType: 'json',
                                    data: {'fooid':fooid,'barid':barid},
                                    error: function(data){ },
                                    success: function(data){
                                        if(data.success == true) {
                                            //
                                        } else if(data.success == false) {
                                            //
                                        }
                                    }
                                }); 
                            }                               

                    });
                    $(".popcontainer").html(messyhtml);
                }
            }
        });
    });

2 个答案:

答案 0 :(得分:1)

这条线解决了我的问题:

$( “[ID * = '继续_']”)管芯();

答案 1 :(得分:0)

读取的行......

$("[id*='proceed_']").live('click',function(){
每次点击时都会执行

...因为它嵌入在...的事件处理程序中

$("[id*='applybut_']").live('click',function(){ 

这样做的结果是,您正在为所有proceed_ *项目订阅多个(相同的)处理程序 - 每次单击apply_but_ *时都会使用一个。因此你的行为。