javascript - 禁用旧按钮上的功能

标签 javascript jquery html

在我的项目中,我想以编程方式添加某些元素 buttons ,因为每次都有新的button添加了,对旧的button的相同函数的调用加倍.

var btnElem ='<button type="button"class="doSomething">Button</button><br>';


function ActiveFunc(){
  $('.doSomething').on('click',function(){  
    alert('Clicked');
  });
}

$('#Add_Btn').on('click',function(){  
  $('#div_').append(btnElem);
  ActiveFunc();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button type="button" id="Add_Btn">AddBtn</button><br>
<div id="div_"></div>

我想禁用对函数的重复调用,我想让所有按钮仅调用该函数一次,知道吗?

注意:直接声明功能对于以编程方式添加的按钮不起作用。

最佳答案

这是因为您每次添加按钮时都会添加事件监听器。

我会建议 1 个事件监听器,如下所示:

var btnElem = '<button type="button"class="doSomething">Button</button><br>';

$('body').on('click', '.doSomething', function() {
  alert('Clicked');
});

$('#Add_Btn').on('click', function() {
  $('#div_').append(btnElem);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button type="button" id="Add_Btn">AddBtn</button><br>
<div id="div_"></div>

关于javascript - 禁用旧按钮上的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50607550/

相关文章:

javascript - 对于发送到 Controller 的对象,我应该使用哪种语法?

javascript - 如何在另一个函数完成后立即触发另一个函数?

javascript - 使用窗口大小调整背景图像大小

javascript - 如何修复被移动超过 1 的值

javascript - 增加字段上的日期

jquery SlideDown 只能运行一次

javascript - AJAX done() 完成所有请求人员后执行

php - 直接将 CSV 文件下载到用户下载文件夹

javascript - 如何在php中使用一张图像绘制形状

javascript - Yepnope 回调始终返回 'result = false'