基于ajax的内容中的jQuery事件问题

时间:2013-06-13 11:48:03

标签: ajax event-handling jquery

我通过点击按钮(LIST按钮)获取带有AjaxCall的html内容并将其放入DIV中。

 $("#list").live("click",function(){
       var id=3;
        $.ajax({
                 url:  location.protocol+'//'+window.location.hostname+"/getList/",
                 type: "POST", 
                 data:{id:id},
                 cache: false,
                 success : function(data){
                    $("#list_template").empty();
                    $("#list_template").html(data);
                 }
             });        
 });

响应的HTML中包含另一个ADD Button,所以问题是如果我单击两次/三次到LIST按钮,然后单击一次也会点击两次/三次ADD按钮。我在插入数据之前清除DIV时也不知道是什么问题,而且在View-source ADD按钮中也是单一的。

$("#add").live("click",function(){
    alert("Added");
 });

所以我想要的是如果我按照我想要的时间单击LIST按钮,但每次单击都应该触发一次ADD按钮。通过一些研究我认为jQuery bind/unbind函数可以在这里使用,但我不知道如何在这里使用它。

1 个答案:

答案 0 :(得分:1)

你可以在下面使用unbind和bind。

$("#list").live("click",function(){
       var id=3;
        $.ajax({
             url:  location.protocol+'//'+window.location.hostname+"/getList/",
             type: "POST", 
             data:{id:id},
             cache: false,
             success : function(data){
                $("#list_template").empty();
                $("#list_template").html(data);
                $("#add").unbind('click').bind("click",function(){
                    alert("Added");
                });
             }
         });        
 });

或者你也可以使用生活和死亡事件。

$("#list").live("click",function(){
       var id=3;
        $.ajax({
             url:  location.protocol+'//'+window.location.hostname+"/getList/",
             type: "POST", 
             data:{id:id},
             cache: false,
             success : function(data){
                $("#list_template").empty();
                $("#list_template").html(data);
                $("#add").die('click').live("click",function(){
                    alert("Added");
                });
             }
         });        
 });