Javascript 一次单击即可保存多次

Javascript 一次单击即可保存多次,javascript,jquery,json,html,Javascript,Jquery,Json,Html,我有一个搜索文本框,搜索结果将显示一个图形,我保存在数据库的结果 但第一次可以正确保存,第二次可以保存2次,第三次可以保存3次 $('#twitsave1').click(function(el) { if ( $("#twitsave1").prop('checked') == true ){ //console.log( el.timeStamp); var reId=$(this).next().next().html(); console.log(r

我有一个搜索文本框,搜索结果将显示一个图形,我保存在数据库的结果

但第一次可以正确保存,第二次可以保存2次,第三次可以保存3次

$('#twitsave1').click(function(el)
{ 

    if ( $("#twitsave1").prop('checked') == true ){

    //console.log( el.timeStamp);
    var reId=$(this).next().next().html();
    console.log(reId);
    var key=$('.searchBar input[type="text"]').val();
    var timeStamps = el.timeStamp;
    var loginname = AppAPI.getUser();
    var logTypes = 'EVIDENCE';
    var dataSources = 'Twitter';

    AppAPI.showLoadingBar('Saving'); 

    var data=JSON.stringify({
        "login":loginname ,
        "value": reId,
        "logType": logTypes,
        "title": 'Twitter - '+key,
        "dataSource":dataSources,
        "timeStamp": timeStamps,
        "searchDateRange":startdate+":"+endDate
   });

   console.log(data);
   var url=getApplicationRoot() +'/api/dao/logEntry';
   $.ajax({
    type:"POST" ,
    url:url,
etc.......
在console.log(data)中,我得到的数据是相同数据的3到4倍
请帮助

可能此单击绑定:
$('twitsave1')。单击()将在单击处理程序中再次执行

  • 在再次发生此click()绑定时,是否调用刷新/重画函数
  • 单击是否会触发AJAX调用,该调用返回添加到页面的javascript代码?然后检查javascript是否没有再次添加click()绑定

尝试向按钮添加禁用或只读属性。该用户将无法一次又一次地单击它。

问题可能是单击多次被解雇。改用。此处理程序将只执行一次。

try。问题可能是多次触发了
click
根本原因是多次绑定click事件。我建议您纠正这一点,而不是使用
.one()
@prash Done来解决问题!谢谢:)@techfoobar:使用
one
有什么问题?@harsha问题不在于是否使用
one
,而是脚本逻辑中的错误<代码>单击
如果绑定正确,应该可以正常工作。取而代之的是,每次调用clickhandler时,都会再次绑定它(在提供的代码中不可见)。因此,每次连续单击都会将一个以上的处理程序绑定到元素。当然,您可以使用
one
完美地解决这个问题,但是最好只检测脚本中的错误(因为绑定和解除绑定处理程序也是一个性能问题)。这不是真正的解决方案