2017-07-15 35 views
0

所以我用ajax加载我的网页,一切都用下面页面内容 - 事件发射多次

$(document).ready(function() { 
    menuLoad('auction'); 
}); 

function menuLoad(page){  
    $.ajax({ 
     type: 'post', 
     url: '/content/'+page+'/'+page+'.php', 
     async : false, 
     success: function (response) { 
      location.hash = page; 
      $("#contentLoad").html(response); 
     } 
    }) 
}; 
但是如果我尝试在同一页面多次加载

做工精细,所有按钮点击事件会多次触发..我明白,每当我加载内容时,我将重新分配一个新事件给按钮,而它已经有一个导致每个事件触发时,用户点击它..但如何解决这个问题?

页里面的内容,该按钮会像下面

<input type="button" value='New Sold' id='soldaddbtn' > 

$(document).on("click", "#soldaddbtn", function(){ 
    $.ajax({ 
     type: "POST", 
     url: "/content/sold/loadSoldAdd.php", 
     dataType: 'html', 
     success: function(response){ 
      bootbox.dialog({message: response}); 
     } 
    }); 
}) 

回答

0

javascriptjava,你需要触发事件,一次,更换

$(document).on("click", "#soldaddbtn", function(){ 

$("#soldaddbtn").on("click", function(){ 
+0

该工作的一些元素,但不是一个动态创建..任何帮助表示赞赏男人! –

+0

你有没有在每个页面内容上有$(document).on(“click”,“#soldaddbtn”,...' – ewwink

0

定义一个全局变量并检查它的存在。作为对()

将click事件绑定,因此有可能是事件是有界的多次的情况:

if(!soldaddbtnClickEventisAdded) { // check if the variable is defined file is already loaded 
    $(document).on("click", "#soldaddbtn", function(){ 
     $.ajax({ 
      type: "POST", 
      url: "/content/sold/loadSoldAdd.php", 
      dataType: 'html', 
      success: function(response){ 
       bootbox.dialog({message: response}); 
      } 
     }); 
    }); 
} 

var soldaddbtnClickEventisAdded = true; // add a global variable 
0

我没有完全理解你的问题,但尝试使用下面的代码。因此解除绑定click事件然后重新绑定它。

$("#soldaddbtn").off("click").on("click", function(){});