0

我有一个 setinterval 方法,它每 3 秒调用一次 php 脚本来检查新数据。

                    setInterval($.proxy(function(){
                    var dataString =  options.url+'table_id='+options.table_id
                    $.ajax({
                            type : 'POST', 
                            url : options.url+"check", 
                            data : dataString, 
                            success: $.proxy(function(data){
                            if(data != ""){
                            var json = $.parseJSON(data);

                            if(json.num >= 1){
                                this.callOtherMethod(json.user_id);

                                    }, this));
                            }
                        }
                            }, this)
                        });
                }, this), 3000);    

如果 num >= 1 将显示按钮。

如果用户单击添加按钮,则 callOtherMethod 的 url 在调用第一个方法时会加载很多次。示例:如果用户在 30 秒后单击添加按钮 example.com/add 将被调用 10 次。

我的呼叫其他方法

                this.callOtherMethod = function(id)
                {
                this.id = id;
                $('#button').show();
                $(".add").bind('click', $.proxy(function(){
                if(this.user_id > 0){
                    $.ajax({
                        type: "POST",
                        url: "add",
                        data: options.url+"text="+this.text+"&user_id="+this.user_id,
                        success: $.proxy(function(data){
                            if(data != ""){

                            // add action
                            }                                
                        }, this)
                    });
                }
                },this));

感谢您的任何帮助

4

1 回答 1

1

问题是您正在显示按钮并进行绑定,callOtherMethod而您应该只分配新的id. $('#button').show()and $(".add").bind('click', $.proxy(function(){ ...应该在一个单独的方法中调用,该方法只从该方法触发一次setInterval。(您可以使用并检查布尔变量以使其仅触发一次)。

希望这可以帮助

于 2012-06-28T19:40:35.600 回答