ajax - 如何清除以前的ajax结果

时间:2011-10-11 07:02:27

标签: javascript jquery ajax

我有这个ajax调用,它在很大程度上起作用,但它似乎记住了之前的结果。编辑:这可能是由于将行为绑定到divid。

我的例程的结构是这样的:

  1. 调用ajax来搜索输入是否正常,从php获取响应。结果可以是“是”或“否”。

  2. 如果结果为是,请将持有者div的颜色更改为视觉提示,允许用户双击div以运行其他功能。如果没有,请不要允许双击div并且不要运行其他功能。

  3. 容易对吗?除非第一个ajax调用产生“是”结果,然后用户执行第二个ajax调用并产生“否”结果,否则用户可以点击“否”结果并执行针对“是”的操作'结果。

    我尝试取消绑定dblclick,但它似乎不起作用,并且仍然允许单击无结果。这是我的jquery代码,我的常规javascript代码具有相同的不良行为。

    编辑:这似乎是一个绑定问题。但我似乎可以取消绑定并销毁/删除以前绑定的行为。通过重复例程进一步测试似乎表明javascript确实将这些绑定对象保存在内存中,因为当我多次重复错误例程时,警报会回显尽可能多的“已保存”绑定对象。

    我的部分代码如下,任何见解都表示赞赏。

    TIA

    编辑:解决方案是取消绑定双击,我应该输入类型dblclick而不是doubleclick

    function search(input,divid) {
    
    var queryString = "name=" + input+"&divid="+divid;
    var url = "../l.php";
    
          $.ajax({
          type: 'get',
          url: url,
          data: queryString,
          cache: false,
          dataType: 'text',
          timeout: 10000, 
    
          error: function(xhr, status, error) { alert('Search Error: '+ xhr.status+ ' - '+ error); },
    
          success: function(response) { 
    
          var result = response;
          var err = /:/;
          var divid = "#"+divid;
    
    
          if (result == "Yes" ) 
          { 
            $(tldid).attr({'class':'tg1', 'title':'Doubleclick to save'});
    
            var testword = 'xyz';
            $(divid).dblclick(function() {
                alert (testword);
    
                        $(divid).unbind('doubleclick');
                       });
    
           else {
             //alert (testword +" should not have been passed here, but it does");
                     $(divid).attr({'class':'tg2'});
            }
    
    
          }//success
        });
    
    }//end 
    

1 个答案:

答案 0 :(得分:0)

您应该将$(divid).unbind('doubleclick');更改为$(divid).unbind('dblclick');